我有一个非常简单的问题 - 我认为 - 但似乎我无法绕过这个问题.我是Python和Pandas的初学者.我搜索了论坛,但无法获得符合我需要的(最近)答案.
我有一个这样的数据框:
df = pd.DataFrame({'A': [1.1, 2.7, 5.3], 'B': [2, 10, 9], 'C': [3.3, 5.4, 1.5], 'D': [4, 7, 15]}, index = ['a1', 'a2', 'a3'])
Run Code Online (Sandbox Code Playgroud)
这使:
A B C D
a1 1.1 2 3.3 4
a2 2.7 10 5.4 7
a3 5.3 9 1.5 15
Run Code Online (Sandbox Code Playgroud)
我的问题很简单:我想添加一列,给出每行第二个最大值的列名.
我写了一个简单的函数,它返回每行的第二个最大值
def get_second_best(x):
return sorted(x)[-2]
df['value'] = df.apply(lambda row: get_second_best(row), axis=1)
Run Code Online (Sandbox Code Playgroud)
这使:
A B C D value
a1 1.1 2 3.3 4 3.3
a2 2.7 10 5.4 7 …Run Code Online (Sandbox Code Playgroud)