如何在for循环中根据条件连接数据帧?

ocns

我正在遍历文件,处理一些数据以生成数组(Value1,Value2,Value3),并将它们组合成如下数据框:

df1:
ID Country Value1 Value2 Value3
BB US      3.5    6.32   1.02   
BB US      6.7    2.32   5.2
BB US      9.3    4.32   4.02
BB US      4.6    5.32   4.1

df2:
ID Country Value1 Value2 Value3
BB AU      5.3    5.12   7.02   
BB AU      7.12   1.32   5.02
BB AU      3.542  2.12   2.02
BB AU      2.4    5.82   6.02

df3:
ID Country Value1 Value2 Value3
BB AU      0.23   1.23   9.1   
BB AU      4.567  4.46   9.2
BB AU      5.34   9.23   0.1
BB AU      9.67   6.34   2.14

所有维度均相同,并带有分类列(ID,国家/地区)。我想在循环结束时将数据帧连接为单个数据帧,但是在类别列相同的情况下(在本示例中为df2和df3),我只想将数据值最高的列保留在“ Value3'(此处为df3),得到的内容如下:

dfconcat:
ID Country Value1 Value2 Value3
BB US      3.5    6.32   1.02   
BB US      6.7    2.32   5.2
BB US      9.3    4.32   4.02
BB US      4.6    5.32   4.1
BB AU      0.23   1.23   9.1   
BB AU      4.567  4.46   9.2
BB AU      5.34   9.23   0.1
BB AU      9.67   6.34   2.14

我知道如何连接的dataframes,我觉得剩下的可以用做np.where.apply,但不能弄明白。

耶斯列尔

用途concat

L = [df1, df2, df3]

df = pd.concat([x.assign(max1 = x['Value3'].max()) for x in L])
df = df[df.groupby(['ID','Country'])['max1'].transform('max').eq(df['max1'])]

print (df)
   ID Country  Value1  Value2  Value3  max1
0  BB      US   3.500    6.32    1.02   5.2
1  BB      US   6.700    2.32    5.20   5.2
2  BB      US   9.300    4.32    4.02   5.2
3  BB      US   4.600    5.32    4.10   5.2
0  BB      AU   0.230    1.23    9.10   9.2
1  BB      AU   4.567    4.46    9.20   9.2
2  BB      AU   5.340    9.23    0.10   9.2
3  BB      AU   9.670    6.34    2.14   9.2

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何根据2列之间的条件连接数据帧

来自分类Dev

如何在R中连接数据帧的行?

来自分类Dev

如何使用循环连接数据列?

来自分类Dev

循环转置和连接数据帧列表

来自分类Dev

在R中的循环内水平连接数据帧

来自分类Dev

如何在for循环中命名数据帧?

来自分类Dev

如何在 purrr 循环中更新数据帧?

来自分类Dev

如何在循环中更新数据帧中的值?

来自分类Dev

for 循环中的 Pandas 数据帧连接导致空数据帧

来自分类Dev

连接数据的MySQL条件

来自分类Dev

如何在Python中使用条件连接数组?

来自分类Dev

按行随机连接数据帧

来自分类Dev

以顺序方式连接数据帧

来自分类Dev

编码后连接数据帧

来自分类Dev

垂直连接数据帧

来自分类Dev

按行随机连接数据帧

来自分类Dev

python pandas - 根据连接数据帧的索引和/或 ID 设置列的列值

来自分类Dev

如何在R中的循环中将多个数据帧写入单个csv文件?

来自分类Dev

如何在R的for循环中从多个数据帧中输出多个pdf文件

来自分类Dev

如何在r的for循环中取数据帧的子集的平均值

来自分类Dev

R,如何在数据帧的循环中进行方差分析?

来自分类Dev

如何在for循环中设置条件以打破

来自分类Dev

如何在无效的循环中添加条件?

来自分类Dev

如何在 Python 的循环中构造条件?

来自分类Dev

如何在函数内部连接数据库

来自分类Dev

如何在jsPlumb中获取连接数据

来自分类Dev

你如何在 jQuery 中连接数据?

来自分类Dev

如何在 Typed Racket 中连接数据库?

来自分类Dev

如何连接数据框?