请教大家一个pandas多条件判断新增列的问题,先谢谢各位!
python吧
全部回复
仅看楼主
level 2
南京的天 楼主
现在有一个dataframe
其中A、B、C是子公司,D、E是分公司,
现在要新增一列‘子公司规模’,条件是:子公司而且销售额大于等于1000 ,达到如下效果
我的代码是:
import pandas as pd
zgs=['A','B','C']
df=pd.DataFrame({'单位':['A','B','C','D','E'],'销售额':[1200,800,1500,900,600]})
df['判断']=(df.单位.apply(lambda x:1 if x in zgs else 0))*(df.销售额.apply(lambda x:1 if x>=1000 else 0))
df['子公司规模']=df.判断.apply(lambda x:'大型子公司' if x==1 else '')
del df['判断']
df
我的方法是新增了辅助列 '判断',
df['判断']=(df.单位.apply(lambda x:1 if x in zgs else 0))*(df.销售额.apply(lambda x:1 if x>=1000 else 0))
df['子公司规模']=df.判断.apply(lambda x:'大型子公司' if x==1 else '')
感觉这个方法比较繁琐,
想请教大家是否有其他简便方法吗?
先谢谢大家了!
2020年05月13日 03点05分 1
level 5
增加一个panduan函数试试看?
2020年05月13日 09点05分 2
非常感谢啊
2020年05月14日 03点05分
level 6
今天无意间,看到此贴文,让我不由自主的看到,干嘛要搞那么复杂,莫非不就是满足两个条的情况下,在右侧加个字段,并注明“大型子公司”
条件1:属于ABC已经知道是子公司。
条件2:属于子公司销售额大于等于1000。
只有以上满足这两个条件就可以了,加上本身pandas标签定位,根据条件返回的bool类型,那么,只需两三行代码搞定,详情如下:
2020年12月26日 02点12分 3
谢谢,将近一年之后我才注意到你的回复
2021年12月14日 02点12分
1