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

其中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 '')
感觉这个方法比较繁琐,
想请教大家是否有其他简便方法吗?
先谢谢大家了!

