Pandas 方法总结

Pandas 方法总结

Pandas 是一个强大的 Python 数据分析库,它提供了快速、灵活和表达力强的数据结构,旨在使数据清洗和分析工作变得更加简单易行。以下是一些 Pandas 中常用的方法和它们的示例:

1. 读取写入

  • read_csv():从 CSV 文件读取数据。

  • read_excel():从 Excel 文件读取数据。

  • read_sql():从 SQL 数据库读取数据。

  • to_csv():将 DataFrame 写入 CSV 文件。

  • to_excel():将 DataFrame 写入 Excel 文件。

import pandas as pd

# 读取 CSV 文件
df = pd.read_csv('data.csv')

# 读取 Excel 文件
df = pd.read_excel('data.xlsx')

# 写入 CSV 文件
df.to_csv('output.csv', index=False)

# 写入 Excel 文件
df.to_excel('output.xlsx', index=False)



2. 数据查看

  • head():查看数据框的前几行数据,默认为5行。

  • tail():查看数据框的后几行数据,默认为5行。

  • describe():生成数据的描述性统计信息,如最大值、最小值、平均值和标准差等。

  • info():显示数据框的基本信息,包括索引、数据类型和内存信息等。

3. 选择过滤

  • loc[]:基于标签的索引器。

  • iloc[]:基于位置的索引器。

  • query():基于表达式的查询。

  • sort_values():对数据进行排序。

  • rank():对数据进行排名。

# 基于标签选择
df.loc[:, 'Column1']

# 基于位置选择
df.iloc[0]  # 第一行
df.iloc[:, 1]  # 第二列

# 使用 query 方法
df.query('Column1 > 10')

# 使用sort_values

# 按'age'列进行升序排列  
df_sorted_asc = df.sort_values('age', ascending=True)  
# 按'age'列进行降序排列  
df_sorted_desc = df.sort_values('age', ascending=False)
# 使用rank()

df['rank'] = df['age'].rank(method='dense')  # 对'age'列进行排名

4. 数据清洗

  • dropna():删除缺失数据。
  • fillna():填充缺失数据。
  • drop_duplicates():删除重复数据。
# 删除缺失数据
df.dropna(inplace=True)

# 填充缺失数据
df.fillna(value=0, inplace=True)

# 删除重复数据
df.drop_duplicates(inplace=True)

5. 数据转换

  • apply():应用一个函数到 DataFrame 的每一列或每一行。
  • map():将函数应用于 Series 的每个元素。
  • pivot_table():创建一个新的表格,用于数据透视。
# 使用 apply 方法
df.apply(lambda x: x**2)

# 使用 map 方法
df['Column1'].map(lambda x: x**2)

# 创建数据透视表
pivot_table = df.pivot_table(index='Column1', columns='Column2', values='Column3', aggfunc='mean')

6. 数据聚合

  • groupby():对数据进行分组聚合操作。
  • sum():计算列的总和。
  • mean():计算列的平均值。
# 分组聚合
grouped = df.groupby('Column1')
grouped.sum()
grouped.mean()

# 直接聚合
df.sum()
df.mean()

7. 数据合并

  • merge():合并两个 DataFrame。
  • concat():沿轴连接多个 DataFrame。
# 合并 DataFrame
merged_df = pd.merge(df1, df2, on='Column1')

# 连接 DataFrame
concatenated_df = pd.concat([df1, df2], axis=0)

8. 时间序列

  • resample():对时间序列数据进行重采样。

  • rolling():计算滚动窗口。

  • shift(): 时间轴移动

    shift()`函数用于将数据沿时间轴向上或向下移动,这在时间序列分析中非常有用。它可以用来将数据向前或向后移动,从而创建滞后或提前的变量。

    • periods:整数,默认为1。表示移动的周期数,正值表示向下移动,负值表示向上移动。
    • freq:用于移动数据的频率。
    • axis:轴向,默认为0,表示沿行移动。如果设置为1,则沿列移动。
    • fill_value:移动后留下的空缺位置的填充值。
  # 重采样
  df.resample('M').mean()  # 按月计算均值
  
  # 滚动窗口
  df['Column1'].rolling(window=3).mean()
# 创建一个简单的DataFrame
df = pd.DataFrame({
    'Column1': [1, 2, 3, 4, 5],
    'Column2': [5, 4, 3, 2, 1]
})

# 将Column1向下移动2个周期
shifted_df = df.shift(periods=2, fill_value=0)

9. 数据处理

  • mean():计算列的平均值。

  • corr():计算列之间的相关性。

  • drop():删除某些列或行。

  • isnull():检查缺失值。

  • fillna():填充缺失值。

10 数据重塑

  • pivot():将长格式的数据框转化为宽格式。
  • melt():将宽格式的数据框转化为长格式。

# pivot()方法

# 将数据框按照'name'、'subject'和'score'进行重塑
pivoted = df.pivot(index='name', columns='subject', values='score')


# melt()方法

# 将数据框按照'name'和'age'进行重塑,并生成新的列'subject'和'score'
melted = df.melt(id_vars=['name', 'age'], var_name='subject', value_name='score')

11. 数据导出

  • to_csv():将数据框写入CSV文件。

  • to_excel():将数据框写入Excel文件。

# to_csv()

 # 将数据框写入CSV文件,不写入行索引
df.to_csv('example.csv', index=False) 


# to_excel()
# 将数据框写入Excel文件,不写入行索引
df.to_excel('example.xlsx', index=False)  

12. 绘图

  • plot():基于 matplotlib 的绘图方法。
df.plot(x='Column1', y='Column2', kind='line')

13.其他方法

  • astype():改变数据类型。
  • value_counts():计算某一列中数值出现的次数。

# astype()
# 将'age'列从int64转化为int32  
df['age'] = df['age'].astype('int32')

# value_counts()
# 计算'name'列中每个值出现的次数
print(df['name'].value_counts()) 

posted @   redufa  阅读(81)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!
点击右上角即可分享
微信分享提示