gpt4 book ai didi

python - Pandas 上 countifs() 的数据透视表

转载 作者:行者123 更新时间:2023-11-30 22:21:23 25 4
gpt4 key购买 nike

我有一个数据集,其中包含标识符 ID 和该数据中的一些特征标志,例如:

In [86]: frame = pd.DataFrame({"key": [1,2,3,4,5,6,7,8,9], "flag1": [0,1,0,1,0,1,0,1,1], "flag2": [0,0,1,1,0,0,1,1,0], "flag3": [0,0,0,0,1,1,1,1,1]}, columns=['key','flag1','flag2','flag3'])

In [87]: frame
Out[87]:
key flag1 flag2 flag3
0 1 0 0 0
1 2 1 0 0
2 3 0 1 0
3 4 1 1 0
4 5 0 0 1
5 6 1 0 1
6 7 0 1 1
7 8 1 1 1
8 9 1 0 1

我希望输出一个数据集,该数据集为我提供满足两个标志作为数据透视表的计数,例如:

   flags  flag1  flag2  flag3
0 flag1 5 2 3
1 flag2 2 4 2
2 flag3 3 2 5

我想我必须在两个循环上迭代frame.keys()[1:],但我不知道如何填充第二个数据集。我应该模仿这个 Google Sheet 的行为,但我的实际数据集太大,Sheets/Excel 无法使用(大约 200 万行和 60 列): https://docs.google.com/spreadsheets/d/1emEm9RtxPAFceUgalCVbzr0mGNoZEMFjWwqSjrxyAuE/edit?usp=sharing

最佳答案

让我们删除key,我们不需要它。之后,解决方案几乎就是一个矩阵乘积:

v = frame.drop('key', 1)
v.T.dot(v)

flag1 flag2 flag3
flag1 5 2 3
flag2 2 4 2
flag3 3 2 5

或者,更有效的是,使用 del 删除 key 列:

del frame['key']
frame.T.dot(frame)

flag1 flag2 flag3
flag1 5 2 3
flag2 2 4 2
flag3 3 2 5

关于python - Pandas 上 countifs() 的数据透视表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48662237/

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