目录
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())
标签:总结,df,数据,age,写入,Column1,csv,方法,Pandas
From: https://www.cnblogs.com/redufa/p/18451339