dataframe基本操作有哪些_下文

目录 :DataFrame常用语法格式如下:

  1. 创建DataFrame
  2. 查看数据前几行
  3. 查看数据后几行
  4. 查看数据基本信息
  5. 描述性统计信息
  6. 选择列
  7. 选择多列
  8. 选择行
  9. 选择特定行与列
  10. 条件条件【Filtering】
  11. 多条件选择
  12. 排序数据
  13. 处理缺失值
  14. 填充缺失值
  15. 新增列
  16. 删除列
  17. 重命名列
  18. 分组统计
  19. 合并DataFrame
  20. 横向合并DataFrame
  21. 合并DataFrame(基于键)
  22. 透视表
  23. 独热编码
  24. 字符串处理
  25. 日期时间处理
  26. 时间序列重采样
  27. 滑动窗口
  28. 绘制图表
  29. 保存DataFrame到文件
  30. 从加载文件数据到DataFrame
  31. 使用apply函数对列进行操作
  32. 使用map函数进行值替换
  33. 使用cut函数进行分箱操作
  34. 使用groupby和transform进行组内操作
  35. 使用astype进行数据类型转换
  36. 使用isin进行过滤
  37. 使用duplicated和drop_duplicated处理重复值
  38. 使用nlarge和nsmallest获取最大值和最小值
  39. 使用value_counts唯一值的频率
  40. 使用str.contains进行模糊匹配
  41. 使用replace进行值替换
  42. 使用pivot进行数据透视
  43. 使用merge处理重复列名
  44. 使用at和iat快速访问元素
  45. 使用mask进行条件替换
  46. 使用query进行条件查询
  47. 使用crosstab进行交叉表
  48. 使用explode展开列表
  49. 使用agg进行多个聚合操作
  50. 使用pipe进行链式操作

23、独热编码

pd.get_dummies(df, columns=['CategoricalColumn'])

使用方式: 将分类变量转换为独热编码。

示例: 对“Status”列进行独热编码。

pd.get_dummies(df, columns=['Status'])

 

24、字符串处理

df['StringColumn'].str.method()

使用方式: 对字符串列进行各种处理,如切片、替换等。

示例: 将“Name”列转换为大写。

df['Name'].str.upper()

 

25、日期时间处理

df['DateTimeColumn'] = pd.to_datetime(df['DateTimeColumn'])

使用方式:将字符串列转换为日期时间类型

示例:  将“Date”列转换为日期时间类型。

 

26、时间序列重采样

df.resample('D').sum()

使用方式: 对时间序列数据进行重新采样。

示例: 将数据按天重新采样并求和。

df.resample('D').sum()

 

27、滑动窗口

df['Column'].rolling(window=size).mean()

 使用方式: 计算滑动窗口的统计量,如均值。

示例: 计算“Salary”列的3天滑动平均值。

df['Salary'].rolling(window=3).mean()

 

28、绘制图表

df.plot(x='Column1', y='Column2', kind='scatter')

使用方式: 使用内置的绘图功能绘制各种图表。

示例: 绘制散点图。

df.plot(x='Age', y='Salary', kind='scatter')

 

29、保存DataFrame到文件

df.to_csv('filename.csv', index=False)

 

使用方式: 将DataFrame保存为CSV文件。

示例: 将DataFrame保存为CSV文件。

df.to_csv('employee_data.csv', index=False)

 

30、从文件加载数据到DataFrame

df = pd.read_csv('filename.csv') 

使用方式: 从文件中加载数据到DataFrame。

示例: 从CSV文件加载数据。

df = pd.read_csv('employee_data.csv')

 

31、 使用apply函数对列进行操作

df['NewColumn'] = df['Column'].apply(lambda x: x * 2)

使用方式: 使用apply函数对某列的每个元素进行操作,可传递自定义函数。

示例: 将“Age”列的每个元素乘以2。

df['DoubleAge'] = df['Age'].apply(lambda x: x * 2)

 

32、使用map函数进行值替换

df['Status'] = df['Status'].map({'Active': 1, 'Inactive': 0})

 使用方式: 使用map函数根据字典或函数替换列中的值。

示例: 将“Status”列的值映射为1和0。

df['Status'] = df['Status'].map({'Active': 1, 'Inactive': 0})

 

33、使用cut函数进行分箱操作

df['AgeGroup'] = pd.cut(df['Age'], bins=[20, 30, 40, 50], labels=['20-30', '30-40', '40-50'])

使用方式: 使用cut函数将数值列分成不同的箱子,用标签表示。

示例: 将“Age”列分成年龄组。

df['AgeGroup'] = pd.cut(df['Age'], bins=[20, 30, 40, 50], labels=['20-30', '30-40', '40-50'])

 

34、使用groupby和transform进行组内操作

df['MeanSalaryByAge'] = df.groupby('Age')['Salary'].transform('mean')

使用方式: 使用groupbytransform在组内进行操作,并将结果广播到原始DataFrame。

示例: 计算每个年龄组的平均工资。

df['MeanSalaryByAge'] = df.groupby('Age')['Salary'].transform('mean')

 

35、使用astype进行数据类型转换

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

使用方式: 使用astype将列的数据类型转换为指定类型。

示例: 将“Age”列转换为浮点数类型。

df['Age'] = df['Age'].astype(float)

 

36、使用isin进行过滤

df[df['Column'].isin(['value1', 'value2'])] 

使用方式: 使用isin过滤包含在给定列表中的值的行。

示例: 选择“Name”列包含特定值的行。

df[df['Name'].isin(['Alice', 'Bob'])]

 

37、使用duplicated和drop_duplicates处理重复值

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

使用方式: 使用duplicated检测重复值,使用drop_duplicates删除重复值。

示例: 查找并删除重复行。

df.duplicated(subset=['Name'])
df.drop_duplicates(subset=['Name'], keep='first')

 

38、使用nlargest和nsmallest获取最大和最小值

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

使用方式: 使用nlargest获取最大值,使用nsmallest获取最小值。

示例: 获取工资最高的前5名和最低的前5名员工。

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

 

39、使用value_counts计算唯一值的频率

df['Column'].value_counts()

使用方式: 使用value_counts计算某列中每个唯一值的频率。

示例: 计算“Status”列中每个状态的数量。

df['Status'].value_counts()

 

40、使用str.contains进行模糊匹配

df[df['Column'].str.contains('pattern', case=False, na=False)]

使用方式: 使用str.contains进行模糊匹配,可指定大小写敏感和处理缺失值。

示例: 选择“Name”列包含字母“A”的行。

df[df['Name'].str.contains('A', case=False, na=False)]

 

41、使用replace进行值替换

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

使用方式: 使用replace替换DataFrame中的值。

示例: 将“Status”列中的“Active”替换为“ActiveStatus”。

df.replace({'Active': 'ActiveStatus'})

 

42、使用pivot进行数据透视

df.pivot(index='IndexColumn', columns='ColumnToPivot', values='ValueColumn')

 使用方式: 使用pivot进行数据透视。

示例: 创建一个数据透视表。

df.pivot(index='ID', columns='Status', values='Salary')

 

43、使用merge处理列名

pd.merge(df1, df2, left_on='LeftColumn', right_on='RightColumn', suffixes=('_left', '_right')) 

使用方式: 在使用merge时,处理两个DataFrame中相同列名的情况。

示例: 合并两个DataFrame,处理重复列名。

pd.merge(df1, df2, left_on='ID', right_on='ID', suffixes=('_left', '_right'))

 

44、 使用at和iat快速访问元素

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

使用方式: 使用atiat快速访问DataFrame中的元素。

示例: 获取第2行的“Name”列的值。

df.at[1, 'Name']

 

 45、使用mask进行条件替换

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

使用方式: 使用mask根据条件替换值。

示例: 根据“Salary”列的条件进行替换。

df['Bonus'] = df['Salary'].mask(df['Salary'] > 60000, 'HighBonus')

 

46、使用query进行条件查询

使用query进行条件查询

df.query('Column > value')

使用方式: 使用query进行条件查询。

示例: 查询“Age”大于25的行。

df.query('Age > 25')

 

47、使用crosstab进行交叉表

pd.crosstab(df['Column1'], df['Column2'])

使用方式: 使用crosstab生成交叉表。

示例: 生成“Status”和“Age”之间的交叉表。

pd.crosstab(df['Status'], df['Age'])

 

48、使用explode展开列表

df.explode('ListColumn') 

使用方式: 使用explode展开包含列表的列。

在 Pandas 中,可以使用 explode 函数将某一列中的列表展开成多行,每个列表元素对应一行。

下面是一个简单的示例:

假设有一个 DataFrame df,其中包含一个列表列 col

df = pd.DataFrame({'col': [[1, 2], [3, 4, 5], [6, 7]]})

print(df)

输出: # col

# 0 [1, 2]

# 1 [3, 4, 5]

# 2 [6, 7]

df_exploded = df.explode('col')

print(df_exploded)

# 输出:

# col

# 0 1

# 0 2

# 1 3

# 1 4

# 1 5

# 2 6

# 2 7

 

49、使用agg进行多个聚合操作

df.groupby('GroupColumn').agg({'Column1': 'mean', 'Column2': ['min', 'max']}) 

使用方式: 使用agg同时进行多个聚合操作。

示例: 计算每个组的平均值、最小值和最大值。

df.groupby('Status').agg({'Salary': ['mean', 'min', 'max']})

 

50、使用pipe进行链式操作

df.pipe(func1).pipe(func2, arg1='value').pipe(func3)

使用方式: 使用pipe进行链式操作,将多个操作组合在一起。

 

 

 

关注公众号「水沐教育科技」,在手机上阅读所有教程,随时随地都能学习。内含一款搜索神器,免费下载全网书籍和视频。

公众号二维码
微信扫码关注公众号

微信交流群 关注微信公众号,加入官方交流群。内含一款搜索神器,免费下载全网书籍和视频。