![](/img/trans.png)
[英]Create pd series based on conditions on df1, and reporting values from df2 or df3
[英]create new df3 with max values from df1 and corresponding values (same position) from df2
我想创建一个新的df3基于
1)在df1的每一列中找到最大值和
2)然后附加一行与df2中的相应值(与df1相同的 position )
输入:
data = [[2, 10], [5, 15], [7, 14]]
data1 = [[0.5, 0.25], [.55, .115], [.45, .414]]
df1 = pd.DataFrame(data)
df2 = pd.DataFrame(data1)
df1.max()
df1.idxmax()
Output:df1
0 1
0 2 10
1 5 15
2 7 14
Output:df2
0 1
0 0.50 0.250
1 0.55 0.115
2 0.45 0.414
所需 Output: df3
0 1
0 7 15
1 0.45 0.115
注意: df1中的列将是唯一的。
你可以试试:
df3 = pd.DataFrame([df1.max().tolist(), [df2.at[row, col] for row, col in zip(df1.idxmax(), df1.columns)]])
Output:
0 1
0 7.00 15.000
1 0.45 0.115
无需通过创建蒙版进行循环。
df3 = pd.DataFrame([df1.max(), df2.values.flatten('F')[(np.amax(df1.values, axis=0) == df1.values).flatten('F')]])
df3
###
0 1
0 7.00 15.000
1 0.45 0.115
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.