【发布时间】:2018-10-20 15:24:42
【问题描述】:
假设我有一份饮料清单:
drinks=['coke','water','milk','yoghourt']
我有一个熊猫系列,其中包含一些与其他嘈杂字符串混合的项目
s = pd.Series(['cokeabc',Nan,Nan,'water coke',Nan,'milk and yoghourt','only water'])
我的目的是先过滤掉噪声,根据其他列补缺失值,然后get_dummies的s列 我的尝试是:
buff=[]
for i in material:
if df['drink'].str.contains(i):
buff.append(i)
kvkl['drink']=' '.join(buff)
但是 df['drink'].str.contains(i) 返回整列 bools
我应该试试 apply() 吗?
【问题讨论】:
-
你可以单独创建每一列
pd.DataFrame({drink: s.str.contains(drink) * 1 for drink in drinks}) -
@TedPetrou 谢谢,这很优雅。但是我需要先用groupby填充缺失值,所以我想我还是需要先清理's'列?
-
您想要的确切输出是什么?你能编辑你的问题把它放进去吗?
标签: python string python-3.x pandas