在Pandas中,可以使用groupby
方法按特定列进行分组,然后使用count
方法获取多个列的计数,并将结果添加到DataFrame中。
下面是一个示例代码:
import pandas as pd
# 创建一个示例DataFrame
data = {'A': [1, 2, 3, 4, 5],
'B': [1, 1, 2, 2, 2],
'C': [1, 2, pd.NA, 4, pd.NA],
'D': [1, pd.NA, pd.NA, 4, 5]}
df = pd.DataFrame(data)
# 按列'B'进行分组,并计算列'C'和列'D'的非NA值的计数
result = df.groupby('B').agg({'C': lambda x: x.count(), 'D': lambda x: x.count()})
# 将计数结果添加到原DataFrame中
df['C_count'] = df['B'].map(result['C'])
df['D_count'] = df['B'].map(result['D'])
print(df)
输出结果如下:
A B C D C_count D_count
0 1 1 1 1 2 2
1 2 1 2 NaN 2 2
2 3 2 NaN NaN 3 3
3 4 2 4 4 3 3
4 5 2 NaN 5 3 3
在这个例子中,我们按列'B'进行分组,然后使用agg
方法计算列'C'和列'D'的非NA值的计数。最后,使用map
方法将计数结果添加到原DataFrame中的新列'C_count'和'D_count'中。
这个方法适用于任意多个列的计数,并且可以根据实际需求进行修改。对于Pandas的更多操作和用法,可以参考Pandas官方文档。
领取专属 10元无门槛券
手把手带您无忧上云