Pandas DataFrame 常用操作示例:从创建到数据分析
Pandas DataFrame 常用操作示例:从创建到数据分析
Pandas 是 Python 中用于数据分析的强大工具,其核心数据结构是 DataFrame。DataFrame 类似于电子表格,可以存储和操作各种类型的数据。本文将带您深入了解 Pandas DataFrame 的常用操作,并通过代码示例演示如何创建 DataFrame、读取和写入数据、查看数据信息、选择列和行、修改数据、排序数据、分组和聚合以及合并数据。
1. 创建 DataFrame
import pandas as pd
# 从列表创建 DataFrame
data = [['Alice', 25], ['Bob', 30], ['Charlie', 35]]
df = pd.DataFrame(data, columns=['Name', 'Age'])
print(df)
# 从字典创建 DataFrame
data = {'Name': ['Alice', 'Bob', 'Charlie'], 'Age': [25, 30, 35]}
df = pd.DataFrame(data)
print(df)
2. 读取和写入数据
import pandas as pd
# 读取 CSV 文件
df = pd.read_csv('data.csv')
# 写入 CSV 文件
df.to_csv('output.csv', index=False)
3. 查看 DataFrame
import pandas as pd
# 查看 DataFrame 的前几行
df.head()
# 查看 DataFrame 的后几行
df.tail()
# 查看 DataFrame 的行数和列数
df.shape
# 查看 DataFrame 的列名
df.columns
# 查看 DataFrame 的数据类型
df.dtypes
# 查看 DataFrame 的描述统计信息
df.describe()
4. 选择列和行
import pandas as pd
# 选择一列
df['Name']
# 选择多列
df[['Name', 'Age']]
# 选择行
df.loc[0]
# 选择多行
df.loc[0:2]
# 根据条件选择行
df[df['Age'] > 30]
5. 修改数据
import pandas as pd
# 修改一列的值
df['Age'] = df['Age'] + 1
# 添加一列
df['Gender'] = ['F', 'M', 'M']
# 删除一列
df.drop('Gender', axis=1, inplace=True)
# 修改一行的值
df.loc[0, 'Age'] = 26
# 添加一行
df.loc[3] = ['David', 40]
6. 排序数据
import pandas as pd
# 按一列排序
df.sort_values(by='Age')
# 按多列排序
df.sort_values(by=['Age', 'Name'])
# 按一列逆序排序
df.sort_values(by='Age', ascending=False)
7. 分组和聚合
import pandas as pd
# 按一列分组,并计算平均值
df.groupby('Gender')['Age'].mean()
# 按多列分组,并计算最大值和最小值
df.groupby(['Gender', 'Name'])['Age'].agg(['max', 'min'])
# 按一列分组,并计算数量
df.groupby('Gender').size()
8. 合并数据
import pandas as pd
# 合并两个 DataFrame
df1 = pd.DataFrame({'Name': ['Alice', 'Bob'], 'Age': [25, 30]})
df2 = pd.DataFrame({'Name': ['Charlie', 'David'], 'Age': [35, 40]})
df = pd.concat([df1, df2])
# 根据一列合并两个 DataFrame
df1 = pd.DataFrame({'Name': ['Alice', 'Bob'], 'Age': [25, 30]})
df2 = pd.DataFrame({'Name': ['Alice', 'Charlie'], 'Gender': ['F', 'M']})
df = pd.merge(df1, df2, on='Name')
通过以上示例,您应该能够更好地理解 Pandas DataFrame 的基本操作。您可以将这些操作组合起来,以完成各种数据分析任务。
原文地址: https://www.cveoy.top/t/topic/oJ7G 著作权归作者所有。请勿转载和采集!