Skip to main content
 首页 » 编程设计

python之计算 Pandas DF 中的实例

2025年05月04日14langtianya

我有一个如下所示的数据框:

TF  name   
0   A 
1   A 
0   A 
0   A 
1   B 
1   B 
0   B 
1   B 
1   B 

我需要生成一个结果数据框,用于计算我的数据框中每个人有多少个 0 和 1。

所以上面的结果是:

name  True  False 
A     3     1 
B     1     4 

我认为 groupby 在这种情况下不起作用。除了循环和计数之外还有其他解决方案吗?

请您参考如下方法:

您可以执行 groupby 让 TF 成为分组键。取对应的value_counts name 列以获得不同的计数。

拆开多索引系列的 level=0 以便生成数据框对象。最后,通过将整数列类型转换为 bool 值来重命名它们。

df.groupby('TF')['name'].value_counts().unstack(0).rename(columns=bool) 

要让列名采用字符串值:

1) 使用lambda函数:

<...operations on df...>.rename(columns=lambda x: str(x.astype(bool))) 

2) 或者将语法链接在一起:

<...operations on df...>.rename(columns=bool).rename(columns=str)