如何将列表中的列名替换为同一行中的列值?[复制]

How do I replace column names in a list with column values in the same row? [duplicate]

提问人:sw233 提问时间:7/3/2023 更新时间:7/3/2023 访问量:77

问:

我有一个数据帧,其中 1 列列出了最大值列名称,根据名称,我想将它们替换为同一行上的这些列值

麦克斯 A列 B列 C列
C列 200 500 800
A列 600 700 1000

预期输出应为:

麦克斯 A列 B列 C列
800 200 500 800
600 600 700 1000

我不确定解决这个问题的最佳方法是什么,任何帮助将不胜感激!

这是一个示例列表,实际列表更大且更随机

Python Pandas DataFrame python-2.7 替换

评论

0赞 Ignatius Reilly 7/3/2023
你使用的是python 2.7吗?
0赞 Ignatius Reilly 7/3/2023
你说它变得更加随机是什么意思

答:

2赞 kelvt 7/3/2023 #1

您可以尝试以下方法:

import pandas as pd

df = pd.DataFrame(
    {
        'Max': ['Column C', 'Column A'],
        'Column A': [200,600],
        'Column B': [500,700],
        'Column C': [800, 1000]
    }
)

df['Max'] = df.apply(lambda x: x[x['Max']], axis=1)

说明:按行应用 x[x['Max']] 以获取列名的值