gpt4 book ai didi

Python Pandas 计算每行列中值的数量并将其放入列中

转载 作者:太空宇宙 更新时间:2023-11-04 00:36:16 24 4
gpt4 key购买 nike

假设我有一个像这样的数据框:

    x     y
1 45 T
2 70 T
3 88 F
4 45 F
5 88 F
..

我想一起计算两列的 value_counts,并将它们放在单独的列中:

    x     y    z
1 45 1 1
2 70 1 0
3 88 0 2
..

其中 x 是我拥有的普通数字(整数),y 是它在原始数据帧中获得的 T 值的数量,z 是它获得的 F 值的数量。

最佳答案

使用crosstab + reset_index + rename_axis :

df = pd.crosstab(df['x'], df['y']).reset_index().rename_axis(None, 1)
print (df)
x F T
0 45 1 1
1 70 0 1
2 88 2 0

替代 groupby + size + unstack :

df = df.groupby(['x','y'])
.size()
.unstack(fill_value=0)
.reset_index().rename_axis(None, 1)
print (df)
x F T
0 45 1 1
1 70 0 1
2 88 2 0

但是如果需要重命名列(但只需要y中的几个唯一值)需要dict:

d = {'T':'y','F':'z'}
df = df.groupby(['x','y'])
.size()
.unstack(fill_value=0)
.rename(columns=d)
.rename_axis(None, 1)
.reset_index()
print (df)
x z y
0 45 1 1
1 70 0 1
2 88 2 0

关于Python Pandas 计算每行列中值的数量并将其放入列中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43931716/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com