楼主: polaris05
854 2

[问答] 请教一个根据一定条件增加一列的问题 [推广有奖]

  • 0关注
  • 0粉丝

本科生

17%

还不是VIP/贵宾

-

威望
0
论坛币
271 个
通用积分
0.0322
学术水平
0 点
热心指数
0 点
信用等级
0 点
经验
448 点
帖子
28
精华
0
在线时间
101 小时
注册时间
2015-5-5
最后登录
2023-2-22

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, ...
关键词:column colum
沙发
缘oO来如此0o 发表于 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)        甲

使用道具

藤椅
polaris05 发表于 2021-2-25 17:59:43 |只看作者 |坛友微信交流群
谢谢~~~

使用道具

您需要登录后才可以回帖 登录 | 我要注册

本版微信群
加好友,备注cda
拉您进交流群

京ICP备16021002-2号 京B2-20170662号 京公网安备 11010802022788号 论坛法律顾问:王进律师 知识产权保护声明   免责及隐私声明

GMT+8, 2024-4-25 10:30