pandas - 熊猫循环 groupby
问题描述
我有一个数据 df1
Col1 Col2 Col3 Col4
12 10 R1 0.1
12 10 R2 0.1
12 8 R3 0.6
11 4 R4 0.2
12 10 R5 0.4
11 4 R6 0.1
df2 是 df1 的子集
col 1 col 2 count
12 10 3
12 8 1
11 4 2
我想要将 df2 的 col1 和 col2 与 df1 匹配的行的输出,从而为 df2 中的每个组合自动化。
对于 df2 中 12 ,10 的组合,我想要匹配 df1 中的行
col 1 col2 col3 col 4
12 10 R1 0.1
12 10 R2 0.1
12 10 R5 0.4
同样,我想为 df2 (12,8) 中的下一个组合创建一个循环
Col 1 col 2 col 3 col 4
12 8 R3 0.6
同样,我想为 df2 (11,4) 中的下一个组合创建一个循环
Col 1 col 2 col 3 col 4
11 4 R4 0.2
11 4 R6 0.1
我试过这个 df3=df1[(df1.Col1 == 12.0)&(df1.Col2 == 10)] 但想自动化它而不提及组合
解决方案
我认为你第二个是没有必要的,只循环和列DataFrame
中唯一值的每个组合:Col1
Col2
for i, g in df1.groupby(['Col1','Col2']):
print (i)
print (g)
如果想为 DataFrame 的字典提供更多动态解决方案:
d = {f'{i[0]}_{i[1]}':g for i, g in df1.groupby(['Col1','Col2'])}
print (d)
{'11_4': Col1 Col2 Col3 Col4
3 11 4 R4 0.2
5 11 4 R6 0.1, '12_8': Col1 Col2 Col3 Col4
2 12 8 R3 0.6, '12_10': Col1 Col2 Col3 Col4
0 12 10 R1 0.1
1 12 10 R2 0.1
4 12 10 R5 0.4}
print (d['11_4'])
Col1 Col2 Col3 Col4
3 11 4 R4 0.2
5 11 4 R6 0.1
推荐阅读
- java - 将 Integer[] 转换为 int[] 的最佳方法是什么
- java - spring-data-jpa 中的 flush 方法如何工作?
- python - 如何使用python计算ab测试中两个列表的统计显着性
- c# - 为进程 C# 传递参数
- go - 如何将字节数组传递给 HyperLedger Fabric 中的链码
- mysql - 通过 Hashicorp Vault 生成凭据时出现错误 403
- javascript - tensorflowjs如何在cnn预测中获得内层输出
- android - 以编程方式检查共享首选项密钥是否加密
- typescript - 打字稿:无法让泛型与扩展一起使用
- wpf - 通过 ReactiveCommand 生成的事件以意外的顺序运行