大家好,我是小F~
Pandas是一個開源Python庫,廣泛用于數(shù)據(jù)操作和分析任務(wù)。
它提供了高效的數(shù)據(jù)結(jié)構(gòu)和功能,使用戶能夠有效地操作和分析結(jié)構(gòu)化數(shù)據(jù)。
憑借其廣泛的功能,Pandas 對于數(shù)據(jù)清理、預(yù)處理、整理和探索性數(shù)據(jù)分析等活動具有很大的價值。
Pandas的核心數(shù)據(jù)結(jié)構(gòu)是Series和DataFrame。
Series是一個一維標(biāo)記數(shù)組,可以容納多種數(shù)據(jù)類型。DataFrame則是一種二維表狀結(jié)構(gòu),由行和列組成,類似于電子表格或SQL表。
利用這些數(shù)據(jù)結(jié)構(gòu)以及廣泛的功能,用戶可以快速加載、轉(zhuǎn)換、過濾、聚合和可視化數(shù)據(jù)。
Pandas與其他流行的Python庫(如NumPy、Matplotlib和scikit-learn)快速集成。
這種集成促進(jìn)了數(shù)據(jù)操作、分析和可視化的工作流程。
由于其直觀的語法和廣泛的功能,Pandas已成為數(shù)據(jù)科學(xué)家、分析師和研究人員在 Python中處理表格或結(jié)構(gòu)化數(shù)據(jù)的首選工具。
在這篇文章中,我將介紹Pandas的所有重要功能,并清晰簡潔地解釋它們的用法。
要使用pandas導(dǎo)入數(shù)據(jù)和讀取文件,我們可以使用庫提供的read_*函數(shù)。
# 導(dǎo)入Pandas
import pandas as pd
# 使用Pandas讀取文件
# 讀取CSV文件
df = pd.read_csv('file.csv')
# 讀取Excel文件
df = pd.read_excel('file.xlsx')
# 讀取JSON文件
df = pd.read_json('file.json')
# 讀取Sql查詢
pd.read_sql(query, connection_object)
# 讀取Parquet文件
df = pd.read_parquet('file.parquet')
# 從url讀取HTML表
url='https://www.example.com/table.html'
tables = pd.read_html(url)
在Pandas中處理數(shù)據(jù)時,我們可以使用多種方法來查看和檢查對象,例如
DataFrame和Series。
# 用于顯示數(shù)據(jù)的前n行
df.head(n)
# 用于顯示數(shù)據(jù)的后n行
df.tail(n)
# 用于獲取數(shù)據(jù)的行數(shù)和列數(shù)
df.shape
# 用于獲取數(shù)據(jù)的索引、數(shù)據(jù)類型和內(nèi)存信息
df.info()
Pandas提供了各種數(shù)據(jù)選擇方法,允許你從DataFrame或Series中提取特定數(shù)據(jù)。
# 用于獲取帶有標(biāo)簽列的series
df[column]
# 選擇多列
df[['column_name1', 'column_name2']]
# 通過標(biāo)簽選擇單行
df.loc[label]
# 通過標(biāo)簽選擇多行
df.loc[[label1, label2, label3]]
# 通過整數(shù)索引選擇單行
df.iloc[index]
# 通過整數(shù)索引選擇多行
df.iloc[start_index:end_index]
# 根據(jù)條件過濾行
df[df['column_name'] > 5 ]
# 使用多個條件過濾行
df[(df['column_name1'] > 5) & (df['column_name2'] == 'value')]
# 通過標(biāo)簽選擇特定的行和列
df.loc[row_labels, column_labels]
# 通過整數(shù)索引選擇特定的行和列
df.iloc[row_indices, column_indices]
# 根據(jù)條件選擇數(shù)據(jù)框中的行和列
df.loc[df['column_name'] > 5, ['column_name1', 'column_name2']]
數(shù)據(jù)清洗是數(shù)據(jù)預(yù)處理階段的重要步驟,在此階段對數(shù)據(jù)進(jìn)行轉(zhuǎn)換和修改以確保其準(zhǔn)確性、一致性和可靠性。
# 檢查缺失值
df.isnull()
# 刪除有缺失值的行
df.dropna()
# 用特定值填充缺失值
df.fillna(value)
# 插入缺失值
df.interpolate()
# 檢查重復(fù)行
df.duplicated()
# 刪除重復(fù)行
df.drop_duplicates()
# 計(jì)算z分?jǐn)?shù)
z_scores = (df - df.mean()) / df.std()
# 根據(jù)z分?jǐn)?shù)識別離群值
= df[z_scores > threshold]
# 刪除離群值
df_cleaned = df[z_scores <= threshold]
# 替換列中的值
df['column_name'] = df['column_name'].str.replace('old_value', 'new_value')
# 刪除前/尾空格
df['column_name'] = df['column_name'].str.strip()
# 將字符串轉(zhuǎn)換為小寫
df['column_name'] = df['column_name'].str.lower()
# 將列轉(zhuǎn)換為不同的數(shù)據(jù)類型
df['column_name'] = df['column_name'].astype('new_type')
# 將列轉(zhuǎn)換為日期時間
df['date_column'] = pd.to_datetime(df['date_column'])
# 重命名列名
df.columns = ['Cat', 'Mat', 'Xat']
# 重置DataFrame的索引
df.reset_index()
Pandas是一個強(qiáng)大的Python庫,用于數(shù)據(jù)操作和分析。
它提供了各種函數(shù)來過濾、排序和分組DataFrame中的數(shù)據(jù)。
在pandas中,你可以使用各種函數(shù)基于公共列或索引來連接或組合多個DataFrame。
# 將df中的行添加到df2的末尾
df.append(df2)
# 將df中的列添加到df2的末尾
pd.concat([df, df2])
# 對列A執(zhí)行外連接
outer_join = pd.merge(df1, df2, on='A', how='outer'), axis =1)
# 對列A執(zhí)行內(nèi)連接
inner_join = pd.merge(df1, df2, on='A', how='inner')
# 對列A執(zhí)行左連接
left_join = pd.merge(df1, df2, on='A', how='left')
# 對列A執(zhí)行右連接
right_join = pd.merge(df1, df2, on='A', how='right')
Pandas提供了廣泛的統(tǒng)計(jì)函數(shù)和方法來分析DataFrame或Series中的數(shù)據(jù)。
# 計(jì)算數(shù)值列的描述性統(tǒng)計(jì)
df.describe()
# 計(jì)算某列的總和
df['column_name'].sum()
# 計(jì)算某列的平均值
df['column_name'].mean()
# 計(jì)算某列的最大值
df['column_name'].max()
# 計(jì)算某列中非空值的數(shù)量
df['column_name'].count()
# 計(jì)算列中某個值的出現(xiàn)次數(shù)
df['column_name'].value_counts()
Pandas是一個用于數(shù)據(jù)操作和分析的強(qiáng)大Python庫。
它提供了將數(shù)據(jù)導(dǎo)出為不同格式的各種功能。
# 以csv格式導(dǎo)出, 不帶行索引導(dǎo)出
df.to_csv('filename.csv', index=False)
# 以Excel格式導(dǎo)出, 不帶行索引導(dǎo)出
data.to_excel('filename.xlsx', index=False)
# 導(dǎo)出Json格式
data.to_json('filename.json', orient='records')
# 以SQL格式導(dǎo)出
data.to_sql('table_name', con=engine, if_exists='replace', index=False)
萬水千山總是情,點(diǎn)個 ?? 行不行。
聯(lián)系客服