提问人:sw233 提问时间:7/3/2023 更新时间:7/3/2023 访问量:77
如何将列表中的列名替换为同一行中的列值?[复制]
How do I replace column names in a list with column values in the same row? [duplicate]
问:
我有一个数据帧,其中 1 列列出了最大值列名称,根据名称,我想将它们替换为同一行上的这些列值
麦克斯 | A列 | B列 | C列 |
---|---|---|---|
C列 | 200 | 500 | 800 |
A列 | 600 | 700 | 1000 |
预期输出应为:
麦克斯 | A列 | B列 | C列 |
---|---|---|---|
800 | 200 | 500 | 800 |
600 | 600 | 700 | 1000 |
我不确定解决这个问题的最佳方法是什么,任何帮助将不胜感激!
这是一个示例列表,实际列表更大且更随机
答:
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']] 以获取列名的值
评论