【发布时间】:2018-01-03 17:13:32
【问题描述】:
对于给定的PandasDataFrame 行,我如何使用一列中的值返回另一列的值,该列的名称是第一列中的值。例如
if row['column_name'] == 'col_A':
return row['col_A']
if row['column_name'] == 'col_B':
return row['col_B']
在知道 numpy 中的 agrmax 时,您会想到获取最大值的相同方式。例如
import pandas as pd
import numpy as np
df = pd.DataFrame({'col_A': [1,2,3], 'col_B': [2,3,0]})
df['col_C-max'] = df.apply(np.max, axis = 1)
df['col_D-colum_name_of_max_value'] = df[['col_A',
'col_B']].apply(np.argmax, axis = 1)
在这种情况下,当只知道 col_A、col_B 和 col_D 时得到 col_C:
col_A col_B col_C-max col_D-colum_name_of_max_value
0 1 2 2 col_B
1 2 3 3 col_B
2 3 0 3 col_A
【问题讨论】: