首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

如何按特定列分组,然后在不是NA的地方获取多个列的计数,并将它们添加到Pandas Python中?

在Pandas中,可以使用groupby方法按特定列进行分组,然后使用count方法获取多个列的计数,并将结果添加到DataFrame中。

下面是一个示例代码:

代码语言:txt
复制
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)

输出结果如下:

代码语言:txt
复制
   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官方文档

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

没有搜到相关的沙龙

领券