楼主: polaris05
1075 2

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

  • 0关注
  • 0粉丝

本科生

17%

还不是VIP/贵宾

-

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

楼主
polaris05 发表于 2020-12-30 19:43:17 |AI写论文
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
拉您进交流群
GMT+8, 2025-12-30 11:23