python - pandas 仅保留列表中的单词和短语的功能
问题描述
我有一个这样的df...
cars = {'Brand': ['Honda Civic 1998','2001 Toyota Corolla','99 Ford','2011 Audi']}
df = pd.DataFrame(cars, columns = ['Brand'])
和这样的清单..
mylist = ['Honda Civic','Ford','Audi']
我正在尝试仅将列表中的元素提取到一个新列中...
df['words from list'] = df['Brand'].apply(lambda x: ' '.join([i for i in x.split() if i in (mylist)]))
我正进入(状态..
Brand words from list
Honda Civic 1998
2001 Toyota Corolla
99 Ford Ford
2011 Audi Audi
如何在不进一步解析列表的情况下获取提取以包含列表中的元素和空格?为什么列表中的空格无法识别?
预期结果是……
Brand words from list
Honda Civic 1998 Honda Civic
2001 Toyota Corolla
99 Ford Ford
2011 Audi Audi
解决方案
pandas series.str.extract 应该这样做:
df['words_from_list'] = df['Brand'].str.extract('('+'|'.join(mylist)+')',expand=False)
print(df)
Brand words_from_list
0 Honda Civic 1998 Honda Civic
1 2001 Toyota Corolla NaN
2 99 Ford Ford
3 2011 Audi Audi
推荐阅读
- xml - 我想在已重新排序的文件中记录一段 xml
- python - 我的 Flask-Admin ModelView 的 __init__ 没有应用程序上下文——它通常什么时候得到一个?
- c++ - 通用单链表,无可行重载 =
- angularjs - 验证 Angular 1.x 输入复选框
- python - 比较 pandas DataFrame 和字典之间的数据
- python - Pandas:通过附加列按组获取最大值
- python - HTML 类在使用检查元素时可见,但在 Python 中用 BS4 找不到
- coffeescript - 在 Coffeescript 中访问静态属性
- json - 为什么我的 Go 服务器无法正确解码从客户端发送的 JSON?
- c# - Windows 服务启动和停止 C#