作者tuberosum (potato)
看板Python
标题[问题] 请问df 条件新增栏位该怎麽做
时间Mon Sep 19 20:23:43 2022
请问各位神人
假设
df= A. B. C.
1. 3 4 13
2. 2 7 -9
3. 5 1 0
请问 我想新增一个D栏位
当C栏位>0 D栏位生成B栏位-A栏位
否则 D栏位生成A栏位-B栏位
变成
df= A. B. C. D.
1. 3 4 13 1
2. 2 7 -9 -5
3. 5 1 0 4
请问该怎麽完成呢
实在想不到 感谢各位大神不吝教学 感恩
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 125.230.30.45 (台湾)
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/Python/M.1663590225.A.845.html
1F:→ Hsins: 是想不到还是懒得找... 09/19 20:28
2F:→ papple23g: df.apply 09/19 20:40
3F:→ tuberosum: qq 我试半天还是一直ERROR 我也不知道错在哪 才上来问 09/19 22:06
df.apply(lambda x: x["B"]-x["A"] if x["C"]>0 else
x["B"]-x["A"]
还是不能跑出来 也不知道问题在哪才询问各位大神
※ 编辑: tuberosum (125.230.30.45 台湾), 09/19/2022 22:19:54
4F:→ papple23g: apply里面要再加参数axis=1,下次把错误讯息一并贴上来 09/19 22:34
5F:→ papple23g: 比较好 09/19 22:34
6F:→ tuberosum: 我也不知道错在哪 KeyError: 'C' 09/19 22:50
7F:→ tuberosum: 前面错误一长串 09/19 22:50
8F:→ tuberosum: 痾 成功了 感谢qq 09/19 23:20
9F:→ gene50814: pd.np.where 或是有更多的规则可以用np.select 09/20 00:06
10F:→ lycantrope: 每篇dataframe都问差不多... 09/20 08:33
11F:→ lambo: df.loc[df['C']>0, 'D'] = df['B']-df['A'] 09/22 19:47
12F:→ lambo: df['D'] = df['D'].fillna(df['A']-df['B']) 供参 09/22 19:48
13F:→ tuberosum: 感谢各位 09/25 16:13