当前位置: 首页 > article >正文

常用Pandas操作(笔记整理)

目录

一、常用

1、创建DataFrame(数据导入)

2. 查看数据前⼏⾏(head)

3. 查看数据后⼏⾏(tail)

4. 查看数据基本信息(info)

5. 使⽤ value_counts 计算唯⼀值的频率

6. 描述性统计信息(describe)

7. 选择列

8. 选择多列

9. 选择⾏(loc)

10. 选择特定⾏和列(loc)

11. 多条件选择

12. 使⽤ at 和 iat 快速访问元素

13. 使⽤ isin 进⾏过滤

14. 使⽤ query 进⾏条件查询

15. 按列排序数据 (sort_values)

16. 使⽤ astype 进⾏数据类型转换

17. 处理缺失值(dropna)

18. 填充缺失值(fillna)

19. 使⽤ duplicated 和 drop_duplicates 处理重复值

20. 新增列

21. 删除列(drop)

22. 重命名列(rename)

23. 使⽤ replace 进⾏值替换

24. 使⽤ mask 进⾏条件替换

25. 分组统计(groupby、agg)

26. 使⽤ nlargest 和 nsmallest 获取最⼤和最⼩值

27. 合并 DataFrame(concat)

28. ⽇期时间处理(to_datetime)

29. 保存 DataFrame 到⽂件(to_csv)

30. 从⽂件加载数据到 DataFrame(read_csv)

31. 使⽤ apply 函数对列进⾏操作

32. 使⽤ map 函数进⾏值替换

33. 使⽤ cut 函数进⾏分箱处理

34. 使⽤ groupby 和 transform 进⾏组内操作

二、其他

1. 字符串处理(str)

2. 使⽤ pipe 进⾏链式操作(pipe)

3. 合并 DataFrame(基于键)(merge)

4. 透视表(pivot_table)


一、常用

1、创建DataFrame(数据导入)

         使⽤字典创建 DataFrame

import pandas as pd

data = {'ID': [101, 102, 103, 104, 105],
        'Name': ['Alice', 'Bob', 'Charlie', 'David', 'Eva'],
        'Age': [25, 30, 22, 35, 28],
        'Salary': [50000, 60000, 45000, 75000, 55000],
        'Status': ['Active', 'Inactive', 'Active', 'Active', 'Inactive']}

df = pd.DataFrame(data)

2. 查看数据前⼏⾏(head)

df.head()
        ⽤于查看 DataFrame 的前⼏⾏,默认为前 ⾏。
        运行结果:

3. 查看数据后⼏⾏(tail)

df.tail()
         ⽤于查看 DataFrame 的后⼏⾏,默认为后 ⾏。

        运行结果:

4. 查看数据基本信息(info)

df.info()
        提供 DataFrame 的基本信息,包括每列的⾮空值数量和数据类型。

        运行结果:

5. 使⽤ value_counts 计算唯⼀值的频率

df['Column'].value_counts()

        使⽤ value_counts 计算某列中每个唯⼀值的频率。

        运行结果: 

6. 描述性统计信息(describe)

df.describe()

# 常用
df.describe([0.01, 0.1, 0.25, 0.5, 0.75, 0.9, 0.99]).T
        提供 DataFrame 的描述性统计信息,包括均值、标准差、最⼩值、25%分位数、中位数(50%分位数)、75%分位数和最⼤值。

        运行结果:

7. 选择列

df['ColumnName']
        通过列名选择 DataFrame 中的⼀列。
        运行结果:

8. 选择多列

df[['Column1', 'Column2']]
        通过列名列表选择 DataFrame  中的多列。

        运行结果:

9. 选择⾏(loc)

df.loc[index]

        通过索引标签选择 DataFrame 中的⼀⾏。

        运行结果:

10. 选择特定⾏和列(loc)

df.loc[index, 'ColumnName']
        通过索引标签和列名选择 DataFrame 中的特定元素。

        运行结果:

11. 多条件选择

df[(df['Column1'] > value1) & (df['Column2'] == value2)]
        使⽤逻辑运算符(& :与,|:或,~:⾮)结合多个条件进⾏过滤。

        运行结果:

12. 使⽤ at 和 iat 快速访问元素

df.at[index, 'ColumnName']
df.iat[index, columnIndex]

        使⽤ at 和 iat 快速访问DataFrame中的元素。

        运行结果: 

13. 使⽤ isin 进⾏过滤

df[df['Column'].isin(['value1', 'value2'])]
        使⽤ isin 过滤包含在给定列表中的值的⾏。

        运行结果: 

14. 使⽤ query 进⾏条件查询

df.query('Column > value')
         使⽤ query 进⾏条件查询。

        运行结果:

15. 按列排序数据 (sort_values)

df.sort_values(by='ColumnName', ascending=False)

# ascending:True升序,False降序
        根据指定列的值进⾏升序或降序排序。

        运行结果:

16. 使⽤ astype 进⾏数据类型转换

df['NewColumn'] = df['Column'].astype(float)

        使⽤ astype 将列的数据类型转换为指定类型。

17. 处理缺失值(dropna)

df.dropna()
        删除包含缺失值的⾏。

        运行结果:

18. 填充缺失值(fillna)

df.fillna(value)
        ⽤指定值填充缺失值。
# 使用均值填充缺失值
df.fillna(df.mean())

19. 使⽤ duplicated 和 drop_duplicates 处理重复值

df.duplicated(subset=['Column1', 'Column2'])

df.drop_duplicates(subset=['Column1', 'Column2'], keep='first')

# keep  'first'(默认):保留每个重复组中的第一个出现的行。
#       'last':保留每个重复组中的最后一个出现的行。

        使⽤ duplicated 检测重复值,使⽤ drop_duplicates 删除重复值。

         运行结果:

20. 新增列

df['NewColumn'] = values
        新增⼀列,并为其赋值。

        运行结果:

21. 删除列(drop)

df.drop('ColumnName', axis=1)
        删除指定列。

        运行结果:

22. 重命名列(rename)

df.rename(columns={'OldName': 'NewName'}, inplace=True)
        重命名指定列。

        运行结果:

23. 使⽤ replace 进⾏值替换

df.replace({'OldValue': 'NewValue'})

        使⽤ replace 替换DataFrame中的值。

        运行结果:

24. 使⽤ mask 进⾏条件替换

df['NewColumn'] = df['Column'].mask(df['Condition'])

        使⽤ mask 根据条件替换值。

        运行结果:

25. 分组统计(groupby、agg)

df.groupby('ColumnName').agg({'Column1': 'mean', 'Column2': 'sum'})
        按照指定列进⾏分组,然后进⾏聚合统计。

        运行结果:

26. 使⽤ nlargest 和 nsmallest 获取最⼤和最⼩值

df.nlargest(5, 'ColumnName')
df.nsmallest(5, 'ColumnName')

        使⽤ nlargest 获取最⼤值,使⽤ nsmallest 获取最⼩值。

        运行结果:

27. 合并 DataFrame(concat)

pd.concat([df1, df2], axis=0)
        沿着指定轴合并两个 DataFrame
# axis=0:垂直合并两个DataFrame
# axis=1:水平合并两个DataFrame

pd.concat([df1, df2], axis=0)

28. ⽇期时间处理(to_datetime)

df['DateTimeColumn'] = pd.to_datetime(df['DateTimeColumn'])
        将字符串列转换为⽇期时间类型。

format

参数符号

说明
%y两位数的年份表示(00-99)
%Y四位数的年份表示(000-9999)
%m月份(01-12)
%d月内中的一天(0-31)
%H24小时制小时数(0-23)
%M分钟数(00-59)
%S秒(00-59)
%j年内的一天(001-366)
%W一年中的星期数(00-53)星期一为星期的开始
%w星期(0-6),星期天为星期的开始

29. 保存 DataFrame 到⽂件(to_csv)

df.to_csv('filename.csv', index=False)
        将 DataFrame 保存为 CSV ⽂件。

30. 从⽂件加载数据到 DataFrame(read_csv)

df = pd.read_csv('filename.csv')
        从⽂件中加载数据到DataFrame

31. 使⽤ apply 函数对列进⾏操作

df['NewColumn'] = df['Column'].apply(lambda x: x * 2)
        使⽤ apply 函数 对某列的每个元素进⾏操作,可传递⾃定义函数。

        运行结果:

32. 使⽤ map 函数进⾏值替换

df['Status'] = df['Status'].map({'Active': 1, 'Inactive': 0})
        使⽤ map函数 根据字典或函数替换列中的值。

        运行结果:

33. 使⽤ cut 函数进⾏分箱处理

df['AgeGroup'] = pd.cut(df['Age']
                        ,bins=[20, 30, 40, 50]
                        ,labels=['20-30', '30-40', '40-50'])
        使⽤ cut 函数将数值列分成不同的箱⼦,⽤标签表示。

        运行结果:

34. 使⽤ groupby 和 transform 进⾏组内操作

df['MeanSalaryByAge'] = df.groupby('Age')['Salary'].transform('mean')
         使⽤ groupby 和 transform 在组内进⾏操作,并将结果⼴播到原始 DataFrame。

二、其他

1. 字符串处理(str)

df['StringColumn'].str.method()
        对字符串列进⾏各种处理,如切⽚、替换等。

2. 使⽤ pipe 进⾏链式操作(pipe)

df.pipe(func1).pipe(func2, arg1='value').pipe(func3)
         使⽤ pipe 进⾏链式操作,将多个操作组合在⼀起。

3. 合并 DataFrame(基于键)(merge)

pd.merge(df1, df2, on='KeyColumn', how='inner')
        使⽤指定列进⾏合并,指定合并⽅式(内连接、左连接、右连接、外连接)。

4. 透视表(pivot_table)

pd.pivot_table(df, values='ValueColumn', index='IndexColumn', columns='ColumnToPivot', aggfunc='mean')
        创建透视表,汇总数据。


http://www.kler.cn/a/289072.html

相关文章:

  • PHP反序列化_3-漏洞利用
  • kubernetes简单入门实战
  • linux上海康SDK安装并设置环境变量
  • 基于yolov8、yolov5的鱼类检测识别系统(含UI界面、训练好的模型、Python代码、数据集)
  • web实操5——http数据详解,request对象功能
  • 【WRF理论第十二期】输出文件:wrfout 和 wrfrst
  • 前端学习笔记-Web APIs篇-02
  • 基于机器学习的工业制造缺陷分析预测系统
  • 运动多线激光三维重建
  • 解决bug: RuntimeError: Address already in use,一个linux下pytorch多卡训练tcp端口占用的bug
  • SpringCloudGateway网关技术
  • 笔记整理—uboot番外(2)find_cmd函数
  • Selenium+Python自动化测试环境搭建
  • SAP自动化操作
  • L1-084 拯救外星人
  • Python 数据分析— Pandas 基本操作(上)
  • SprinBoot+Vue健康管管理微信小程序的设计与实现
  • 代码随想录训练营day51|图论part2
  • 解锁.NET安全奥秘:敏感数据加密与哈希的深度揭秘
  • C++系列-const所有用法总结
  • HALCON 错误代码 #7709
  • python-简单的dos攻击
  • 第十四章 rust集合库介绍
  • Mybatis【分页插件,缓存,一级缓存,二级缓存,常见缓存面试题】
  • 【HarmonyOS】模仿个人中心头像图片,调用系统相机拍照,从系统相册选择图片和圆形裁剪显示 (二)
  • 免费升级https访问