Pandas库专为数据分析而设计,它是使Python成为强大而高效的数据分析环境的重要因素。它提供了多种数据结构和方法来处理和分析数据。
下面是一些Pandas常用方法的使用总结。
1. 创建数据框
使用read_csv()
或read_excel()
方法读取数据文件,也可以使用DataFrame()
方法从列表或字典创建数据帧。例如,通过以下方式创建数据框:
import pandas as pd df = pd.read_csv('example.csv') # or df = pd.read_excel('example.xlsx') # or df = pd.DataFrame({'name': ['Alice', 'Bob', 'Charlie'], 'age': [25, 32, 18]})
2. 查看数据
使用head()
和tail()
方法查看前几行或后几行数据。可以使用describe()
方法获取数据的描述性统计信息,例如最大值、最小值、平均值和标准差等。
# 查看前5行数据 print(df.head()) # 查看后5行数据 print(df.tail()) # 查看数据的描述性统计信息 print(df.describe())
3. 索引和选择数据
可以使用loc[]
和iloc[]
方法对数据进行索引和选择。loc[]
方法基于标签选择数据,而iloc[]
方法基于行和列的位置选择数据,例如:
# 选择行和列: df.loc[0, 'name'] df.iloc[0, 1] # 选择行: df.loc[0] df.iloc[0] # 选择列: df['name']
4. 操作数据
Pandas提供了很多数据操作方法,例如,可以使用mean()
方法计算列的平均值,使用corr()
方法计算列之间相关性并使用drop()
方法删除某些列或行。
# 计算列的平均值 df['age'].mean() # 计算列之间的相关性 df.corr() # 删除某些列或行 df.drop('age', axis=1) df.drop(0)
5. 处理缺失值
Pandas提供了方法来处理缺失值,例如可以使用isnull()
检查失值并使用fillna()
方法填充缺失值。
# 检查缺失值 df.isnull() # 填充缺失值 df.fillna(0)
6. 分组和聚合
可以使用groupby()
方法将数据按照某些列进行分组,然后使用聚合函数计算列的值。
# 分组和聚合 df.groupby('name').mean()
7. 绘制图表
Pandas提供了很多绘制图表的函数,例如plot()
方法可以绘制线图、散点图和条形图等。
# 绘制线图 df.plot(x='name', y='age') # 绘制散点图 df.plot.scatter(x='name', y='age') # 绘制条形图 df.plot.bar(x='name', y='age')
8. 排序和排名
使用sort_values()
方法对数据进行排序,可以按照某一列的值进行升序或降序排列。使用rank()
方法进行排名,将所有的数据按照某一列的值进行排名,例如:
# 按age列进行升序排列 df.sort_values('age', ascending=True) # 按age列进行降序排列 df.sort_values('age', ascending=False) # 对age进行排名 df['rank'] = df['age'].rank(method='dense')
9. 数据重塑
使用pivot()
和melt()
方法进行数据重塑。pivot()
方法可以将长格式的数据框转化为宽格式,而melt()
方法可以将宽格式的数据框转化为长格式,例如:
# 将长格式的数据框转化为宽格式 df.pivot(index='name', columns='subject', values='score') # 将宽格式的数据框转化为长格式 df.melt(id_vars=['name', 'age'], var_name='subject', value_name='score')
10. 时间序列数据处理
Pandas提供了多种方法来处理时间序列数据,例如可以使用to_datetime()
方法将字符串转化为日期格式,使用resample()
方法对时间序列进行重采样,例如:
# 将字符串转化为日期格式 df['date'] = pd.to_datetime(df['date'], formatYmd') # 对时间序列进行重采样 df.resample('D').sum()
11. 缩减内存占用
Pandas中如果数据集很大,占用的内存可能也会很大,可以使用astype()
方法将一些整型或浮点型的列转化为较小的数据类型来减少内存占用,例如:
# 将age列从int64转化为int32 df['age'] =['age'].astype('int32') # 将score列从float64转化为float32 df['score'] = df['score'].astype('float32')
12. 数据分析和统计
Pandas提供了多种方法来进行数据析和统计,例如可以使用value_counts()
方法计算某一列中数值出现的次数,使用cut()
方法对一维的连续数据进行离散化,例如:
# 计算name列中每个值出现的次数 df['name'].value_counts() # 对age列进行等距离分割 df['age_cut'] = pd.cut(df['age'], 3)
13. 文本数据处理
Pandas提供了多种方法来处理文本数据,例如可以使用str()
方法来访问字符串中的子串或使用正则表达式来匹配字符串,例如:
# 访问name列中的子串 df['name'].str[0:3] # 查找name列中包含字母'c'的行 df[df[''].str.contains('c')]
14. 数据透视表
在数据分析中,有时需要统计汇总数据,并按照某些列进行分组统计汇总,Pandas中提供了数据透视表功能来实现上述需求。例如:
pivot_df = df.pivot_table(values='score', index='gender', columnssubject', aggfunc=np.mean)
在这个例子中,我们用pivot_table()
方法将原始数据框df
按照subject
列和gender
列进行分组,并求出每个分组的平均值,最后返回一个新的数据框pivot_df
。
Pandas 28种常用方法使用总结(下):https://developer.aliyun.com/article/1462371