Pandas数据分析实用小技巧有哪些
Pandas是一种基于Numpy的Python数据分析包,能够快速、简单、便捷地处理大型的数据集。在进行Pandas数据分析时,有很多实用小技巧能够提高我们的效率和分析质量。下面列举一些常用的技巧。
一、数据提取与过滤
1. loc和iloc
loc是通过标签提取数据,而iloc是通过位置提取数据。常用于提取行或列数据,可以指定多个条件。示例代码如下:
#使用loc选择特定行和列的数据 df.loc[:10, ['A', 'B']] #使用iloc选择前10行和前2列的数据 df.iloc[:10, :2]
2. 使用isin()
isin()方法可以返回一个布尔值,表示每个元素是否包含在传递的值序列中,该方法通常用于数据筛选。示例代码如下:
#选择数据中 A 列中值为 1, 2 或 3 的行 df[df['A'].isin([1,2,3])]
3. where()
where()方法可以用于根据条件筛选数据,并根据条件替换数据,示例代码如下:
#将数据中小于 0 的值替换为 0 df.where(df>0,0)
4. query()
query()方法可以实现按照条件筛选数据,代码更加清晰。示例代码如下:
#选择数据中 A 列中值大于0且B列的值为 2 的行
df.query('A>0 & B==2')
二、数据聚合
1. groupby()
groupby()方法用于将数据按照一定的规则进行聚合,通常用于进行数据分类统计。示例代码如下:
#按照 A 列对数据进行分组,并对 B 列求和
df.groupby('A').sum()["B"]
2. pivot_table()
pivot_table()方法可以根据数据中的行、列对数据进行聚合,常用于进行数据透视,示例代码如下:
#根据 A 列、B 列对 C 列进行统计 df.pivot_table(values='C',index='A',columns='B',aggfunc=np.sum)
三、数据处理
1. apply()和applymap()
apply()方法用于按照一定规则对数据的某一列或某一行进行操作,applymap()方法用于对数据中每一个元素进行操作。示例代码如下:
#把数据中的每一个元素都加上 1 df.applymap(lambda x: x+1) #把数据中 C 列的平均数减去每一个元素 df['C'].apply(lambda x: x-df['C'].mean())
2. fillna()
fillna()方法用于填充数据中的缺失值,示例代码如下:
#把数据中的缺失值填充为0 df.fillna(0)
3. astype()
astype()方法用于转换数据的类型,通常用于将字符类型转换为数值类型等。示例代码如下:
#将数据中的 A 列转换成float类型 df['A'] = df['A'].astype(float)
四、数据合并
1. concat()
concat()方法可以实现两个或多个数据集的合并,可以设置合并方式为纵向合并或横向合并。示例代码如下:
#横向拼接两个数据集
df1 = pd.DataFrame({'A': ['A0', 'A1', 'A2', 'A3'], 'B': ['B0', 'B1', 'B2', 'B3'], 'C': ['C0', 'C1', 'C2', 'C3'],'D': ['D0', 'D1', 'D2', 'D3']})
df2 = pd.DataFrame({'A': ['A4', 'A5', 'A6', 'A7'], 'B': ['B4', 'B5', 'B6', 'B7'], 'C': ['C4', 'C5', 'C6', 'C7'],'D': ['D4', 'D5', 'D6', 'D7']})
pd.concat([df1, df2], axis=1)
2. merge()
merge()方法用于根据一个或多个键将不同的数据集的行连接起来,可以设置连接方式和合并键。示例代码如下:
#根据 A 列进行连接
df1 = pd.DataFrame({'key': ['K0', 'K1', 'K2', 'K3'], 'A': ['A0', 'A1', 'A2', 'A3'], 'B': ['B0', 'B1', 'B2', 'B3']})
df2 = pd.DataFrame({'key': ['K0', 'K1', 'K2', 'K3'], 'C': ['C0', 'C1', 'C2', 'C3'], 'D': ['D0', 'D1', 'D2', 'D3']})
pd.merge(df1, df2, on='key')
以上是一些Pandas数据分析实用小技巧,通过这些技巧能够提高我们的工作效率,更好地完成数据分析任务。
