我有许多看起来类似于以下内容的数据帧:
df1:
country value
A 8.518074e+11
B 1.138434e+11
C 8.745698e+10
D 7.543453e+10
E 6.387533e+10
df2:
country value
A 3.897267e+10
B 3.589588e+10
C 3.077954e+10
D 2.868014e+10
E 2.690948e+10
等等。df1、df2等是包含同一组(国家)变量和不同值的不同类别。目标是获取所有数据帧,并获得每个国家的最大值类别。在上面的例子中,例如:
A, 8.518074e+11
对于国家A等等。我知道如何手动获取此值:
maxA = max(("df1", df1["A"]), ("df2", df2["A"]))
maxA
("df1", 8.518074e+11)
但是如果我这样做的话,我需要用“B”,“C”来交换例子中的“A”作为所有变量。如何自动完成?我需要用这样的占位符替换有问题的变量:
maxX = max(("df1", df1["X"]), ("df2", df2["X"]))
然后在数据帧上重复,得到每个国家的结果。然而,这不同于在简单的列表上重复,因为只有一个特定的变量应该改变。有没有一个方便的解决办法,而不是用手来做呢?你知道吗
非常感谢
首先,将
country
设置为每个数据帧的索引。你知道吗接下来,按轴连接它们,沿每行找到
max
,并重置索引。你知道吗如果您想在结果中添加一个指示符,则需要稍微修改代码,添加一个新的
indicator
列,然后沿第0个轴执行concat
启用,并找到每个组的idxmax
相关问题 更多 >
编程相关推荐