dataframe基本操作有哪些_下文
目录 :DataFrame常用语法格式如下:
- 创建DataFrame
- 查看数据前几行
- 查看数据后几行
- 查看数据基本信息
- 描述性统计信息
- 选择列
- 选择多列
- 选择行
- 选择特定行与列
- 条件条件【Filtering】
- 多条件选择
- 排序数据
- 处理缺失值
- 填充缺失值
- 新增列
- 删除列
- 重命名列
- 分组统计
- 合并DataFrame
- 横向合并DataFrame
- 合并DataFrame(基于键)
- 透视表
- 独热编码
- 字符串处理
- 日期时间处理
- 时间序列重采样
- 滑动窗口
- 绘制图表
- 保存DataFrame到文件
- 从加载文件数据到DataFrame
- 使用apply函数对列进行操作
- 使用map函数进行值替换
- 使用cut函数进行分箱操作
- 使用groupby和transform进行组内操作
- 使用astype进行数据类型转换
- 使用isin进行过滤
- 使用duplicated和drop_duplicated处理重复值
- 使用nlarge和nsmallest获取最大值和最小值
- 使用value_counts唯一值的频率
- 使用str.contains进行模糊匹配
- 使用replace进行值替换
- 使用pivot进行数据透视
- 使用merge处理重复列名
- 使用at和iat快速访问元素
- 使用mask进行条件替换
- 使用query进行条件查询
- 使用crosstab进行交叉表
- 使用explode展开列表
- 使用agg进行多个聚合操作
- 使用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')
使用方式: 使用groupby和transform在组内进行操作,并将结果广播到原始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]
使用方式: 使用at和iat快速访问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进行链式操作,将多个操作组合在一起。
关注公众号「水沐教育科技」,在手机上阅读所有教程,随时随地都能学习。内含一款搜索神器,免费下载全网书籍和视频。

微信扫码关注公众号