Pandas 是一个强大的 Python 数据分析工具库,它使得数据预处理、分析和可视化变得更加简单和直观。以下是使用 Pandas 进行数据处理的一些基本操作。
产生 Pandas 对象
Pandas 主要有两种数据结构:Series 和 DataFrame。
import pandas as pd
import numpy as np
# 创建 Series
s = pd.Series([1, 3, 5, np.nan, 6, 8])
# 创建 DataFrame
dates = pd.date_range('20230101', periods=6)
df = pd.DataFrame(np.random.randn(6, 4), index=dates, columns=list('ABCD'))
查看数据
# 查看 DataFrame 的头部数据
print(df.head())
# 查看 DataFrame 的尾部数据
print(df.tail(3))
# 显示索引、列和底层的 numpy 数据
print(df.index)
print(df.columns)
print(df.to_numpy())
排序
# 按轴排序
print(df.sort_index(axis=1, ascending=False))
# 按值排序
print(df.sort_values(by='B'))
索引
# 选择单列,产生 Series
print(df['A'])
# 通过 [] 进行选择,这将会对行进行切片
print(df[0:3])
缺失数据
Pandas 主要使用 np.nan 来表示缺失数据。
# 填充缺失值
print(df.fillna(value=5))
# 获取布尔掩码,其中数据缺失
print(pd.isna(df))
计算操作
# 描述性统计
print(df.describe())
# 执行一个描述性统计
print(df.mean())
合并
# 合并 DataFrame
df1 = pd.DataFrame(np.random.randn(10, 4))
pieces = [df1[:3], df1[3:7], df1[7:]]
print(pd.concat(pieces))
改变形状
# 使用“堆叠”技术
stacked = df.stack()
print(stacked.unstack())
时间序列
# 创建时间序列数据
rng = pd.date_range('1/1/2023', periods=100, freq='S')
ts = pd.Series(np.random.randint(0, 500, len(rng)), index=rng)
print(ts.resample('5Min').sum())
Categoricals
df = pd.DataFrame({"id":[1,2,3,4,5,6], "raw_grade":['a', 'b', 'b', 'a', 'a', 'e']})
df["grade"] = df["raw_grade"].astype("category")
print(df["grade"])
绘图
import matplotlib.pyplot as plt
ts = pd.Series(np.random.randn(1000), index=pd.date_range('1/1/2023', periods=1000))
ts = ts.cumsum()
ts.plot()
plt.show()
文件读写
# 写入 CSV
df.to_csv('example.csv')
# 从 CSV 读取
pd.read_csv('example.csv')
通过这些基本操作,你可以开始使用 Pandas 来处理和分析实际的数据集了。Pandas 强大的功能可以帮助你轻松地完成数据预处理、分析及可视化等任务。
最后
欢迎关注我的微信公众号, 一起交流学习!!!