如何基于df1列最大值及对应位置df2值创建新DataFrame df3
解决方案:创建包含df1列最大值及df2对应位置值的df3
完整实现代码
import pandas as pd 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每列最大值并转为单行DataFrame max_values = df1.max().to_frame().T # 获取df1每列最大值的索引,提取df2中对应位置的值 df2_corresponding = df2.lookup(df1.idxmax(), df1.columns).to_frame().T # 合并两行得到df3 df3 = pd.concat([max_values, df2_corresponding], ignore_index=True) print(df3)
代码说明
- 提取df1列最大值:用
df1.max()获取每列最大值,通过to_frame().T将结果转为单行DataFrame,作为df3的第一行。 - 提取df2对应值:
df1.idxmax()返回每列最大值所在的行索引,结合df2.lookup()精准提取df2中对应列、对应索引位置的值,转为单行DataFrame作为df3的第二行。 - 合并结果:使用
pd.concat()将两行数据合并,ignore_index=True重置行索引,得到目标df3。
输出结果
0 1 0 7.0 15.00 1 0.45 0.115
内容的提问来源于stack exchange,提问作者shoggananna
相关产品推荐
相关产品推荐

