大家好,我是小F~ Pandas是一個(gè)開源Python庫,廣泛用于數(shù)據(jù)操作和分析任務(wù)。 它提供了高效的數(shù)據(jù)結(jié)構(gòu)和功能,使用戶能夠有效地操作和分析結(jié)構(gòu)化數(shù)據(jù)。 憑借其廣泛的功能,Pandas 對于數(shù)據(jù)清理、預(yù)處理、整理和探索性數(shù)據(jù)分析等活動(dòng)具有很大的價(jià)值。 Pandas的核心數(shù)據(jù)結(jié)構(gòu)是Series和DataFrame。 Series是一個(gè)一維標(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ù)并讀取文件要使用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./table.html' tables = pd.read_html(url) 在Pandas中處理數(shù)據(jù)時(shí),我們可以使用多種方法來查看和檢查對象,例如 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進(jìn)行數(shù)據(jù)選擇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 ]
# 使用多個(gè)條件過濾行 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ù)識(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)換為日期時(shí)間 df['date_column'] = pd.to_datetime(df['date_column'])
# 重命名列名 df.columns = ['Cat', 'Mat', 'Xat']
# 重置DataFrame的索引 df.reset_index()
Pandas是一個(gè)強(qiáng)大的Python庫,用于數(shù)據(jù)操作和分析。 它提供了各種函數(shù)來過濾、排序和分組DataFrame中的數(shù)據(jù)。 # 根據(jù)條件過濾行 df_filtered = df[df['column_name'] > 5]
# 按單列對DataFrame進(jìn)行排序 df_sorted = df.sort_values('column_name')
# 按多列對DataFrame進(jìn)行排序 df_sorted = df.sort_values(['column_name1', 'column_name2'], ascending=[True, False])
# 按單列對DataFrame進(jìn)行分組并計(jì)算另一列的平均值 grouped_data = df.groupby('column_name')['other_column'].mean()
# 按多列對DataFrame進(jìn)行分組并計(jì)算另一列的總和 grouped_data = df.groupby(['column_name1', 'column_name2'])['other_column'].sum()
# 計(jì)算列的總和 sum_value = df['column_name'].sum ()
# 計(jì)算列的平均值 mean_value = df['column_name'].mean()
# 計(jì)算列的最大值 max_value = df['column_name'].max()
# 計(jì)算列的最小值 min_value = df[ 'column_name' ].min()
# 統(tǒng)計(jì)列中非空值的個(gè)數(shù) count = df['column_name'].count()
# 對DataFrame進(jìn)行分組并重置索引 grouped_data = df.groupby('column_name')['other_column'].sum().reset_index()
在pandas中,你可以使用各種函數(shù)基于公共列或索引來連接或組合多個(gè)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ì)算列中某個(gè)值的出現(xiàn)次數(shù) df['column_name'].value_counts()
Pandas是一個(gè)用于數(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)個(gè) ?? 行不行。
|