gpt4 book ai didi

python - Pandas 计算不同列中的相同值

转载 作者:行者123 更新时间:2023-12-04 02:35:43 24 4
gpt4 key购买 nike

我想计算不同列中所有相同值的数量。这里有更好的解释,我有这个 df

df= pd.DataFrame([['Id1',1, 0, 'b', 'j'], ['Id2', 0, 2, 'c', 'g'], ['Id2',0, 1, 2,'je']]) 
df= df.rename({0:'IDcol', 1:'col1', 2:'col2', 3:'col3', 4:'col4'}, axis=1)
df

哪个会显示下面的df

    IDcol   col1    col2    col3    col4
0 Id1 1 0 b j
1 Id2 0 2 c g
2 Id2 0 1 2 je

然后计算 col1 和 col2 中的所有值并得到如下内容:


values count
0 0 3
1 1 2
2 2 1

作为额外的部分,应该很容易按 IDcol 分组,然后得到类似的东西:

    Id   values count
0 Id1 0 1
1 Id1 1 1
2 Id1 2 0
3 Id2 0 2
4 Id2 1 1
5 Id2 2 0

我已经尝试过 groupby、size 和 values_count 的不同组合,但我对 size 和 value_count 的了解还不够广泛,所以我可能遗漏了一些东西。

我也认为这应该可以使用理解列表来实现,但如果可以使用 pandas 函数,那么处理时间会更好。

注意事项:

1) 我在此示例中使用了 int,但这也适用于字符串。

2) 如果不手动引入值会更好。

最佳答案

您可以使用 df.append然后使用 pd.Series.value_counts .

df['col1'].append(df['col2']).value_counts()

0 3
1 2
2 1

关于python - Pandas 计算不同列中的相同值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61971341/

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