全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 python论坛
1044 2
2020-12-30
悬赏 100 个论坛币 已解决
请教一个问题
column1    column2    column3
(A, 20)      (乙, 30)     (B, 50)
(D, 20)      (C, 70)      (E, 50)
(丁, 80)     (甲, 100)     (B, 50)

如上面所示,第一行里50最大,就选B;第二行里70最大,就选C;最三行里100最大,就选甲.
所以增加一列,第一行是B,第二行是C,第三行是甲

最佳答案

缘oO来如此0o 查看完整内容

import pandas as pd df = pd.DataFrame([[('A', 20), ('乙', 30), ('B', 50)], [('D', 20), ('C', 70), ('E', 50)], [('丁', 80), ('甲', 100), ('B', 50)]]) def func_a(s): return sorted(s.values.tolist(), key=lambda x: x[1], reverse=True)[0][0] df['add'] = df.apply(lambda x: func_a(x), axis=1) 0 1 2 add 0 (A, 20) (乙, 30) (B, 50) B 1 (D, 20) (C, 70) (E, ...
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

全部回复
2020-12-30 19:43:18
import pandas as pd
df = pd.DataFrame([[('A', 20), ('乙', 30), ('B', 50)],
                [('D', 20), ('C', 70), ('E', 50)],
                [('丁', 80), ('甲', 100), ('B', 50)]])

def func_a(s):
    return sorted(s.values.tolist(), key=lambda x: x[1], reverse=True)[0][0]

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


0        1        2        add
0        (A, 20)        (乙, 30)        (B, 50)        B
1        (D, 20)        (C, 70)        (E, 50)        C
2        (丁, 80)        (甲, 100)        (B, 50)        甲
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2021-2-25 17:59:43
谢谢~~~
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

栏目导航
热门文章
推荐文章

说点什么

分享

扫码加好友,拉您进群
各岗位、行业、专业交流群