gpt4 book ai didi

python - pandas 多列数据框中的快捷计数方法

转载 作者:太空宇宙 更新时间:2023-11-03 21:33:50 24 4
gpt4 key购买 nike

这是我的数据框

    year2000_bin    year2001_bin    year2002_bin    Firm
0 binZ binZ binZ 0
1 binZ binZ binZ 1
2 binZ binZ binZ 2
3 binZ binZ binZ 3
4 binZ binZ binZ 4
5 binZ binZ binZ 5
6 binW binV binV 6
7 binZ binZ binZ 7
8 binZ binZ binZ 8
9 binZ binZ binZ 9

我正在尝试查找属于每个 bin 的公司总数(例如 binZ、binW 等)

以下语法给了我两年的时间

dict1={k:list(v) for k, v in rebinnedDF.groupby('year2000_bin')['Firm'] }       
dict2={k:list(v) for k, v in rebinnedDF.groupby('year2001_bin')['Firm'] }

year1= [(k, len(v1)) for k, v1 in dict1.items()]
year2= [(k, len(v2)) for k, v2 in dict2.items()]
for i in year1:
#print(i[0])
for j in year2:
if i[0]==j[0]:
print(j[0], i[1], j[1])

我可以得到结果

(binZ, 9, 9)
(binW, 1, 0)
(binV, 0, 1)

我的预期结果是:

(binZ, 9, 9, 9)
(binW, 1, 0, 0)
(binV, 0, 1, 1)

这意味着我有列标题year2000_bin、year2001_bin、year2002_bin到year2018_bin,总共19年。如何计算所选行值的多个列。向 Pandas 专家寻求有效的方法。

最佳答案

IIUC

df.melt('Firm').groupby(['value','variable']).size().unstack(fill_value=0)
Out[51]:
variable year2000_bin year2001_bin year2002_bin
value
binV 0 1 1
binW 1 0 0
binZ 9 9 9

关于python - pandas 多列数据框中的快捷计数方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53362162/

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