python-3.x - 如何在 pandas 列中搜索字符串并根据该字符串追加到行?
问题描述
我有一个 pandas 数据框,我想搜索 columnA
中的字符串,如果有匹配项我想追1
加到一个新列,如果没有匹配项我想追加一个0
.
我的 df 目前看起来像:
Column A | Column B | Column C
company one | 314 | 0.9
company one toast | 190 | 0.3
www.companyone | 380 | 0.87
companyone home | 850 | 0.1
toaster supplies | 1100 | 0.5
toast rack | 200 | 0.7
...
我正在尝试编写一个可以读取的函数column A
,如果与 company one 或 companyone 匹配,则在行尾附加 1。如果没有匹配,则追加 0。我正在寻找的输出是:
Column A | Column B | Column C | Branded
company one | 314 | 0.9 | 1
company one toast | 190 | 0.3 | 1
www.companyone | 380 | 0.87 | 1
companyone home | 850 | 0.1 | 1
toaster supplies | 1100 | 0.5 | 0
toast rack | 200 | 0.7 | 0
...
我试过这个功能:
def branded(table):
if 'company.*?one' in table[table['Column A']]:
table['Branded'] = 1
else:
table['Branded'] = 0
return table.head()
但是我得到一个KeyError
. 我不确定我错过了什么。
解决方案
你可以这样做:
df['Branded'] = df['Column A'].str.contains('company.*?one')*1
推荐阅读
- r - 如果有光泽的值变化
- mininet - 运行 mininet 拓扑
- c# - 不使用 EmptyDataTemplate 消息清除 GridView
- android - 通知显示在模拟器上,但是当应用程序在真机上启动时(小米红米note 7),通知不显示
- python - 按名称的相似部分对某些列求和
- flutter - 颤动中的iOS闹钟时间选择器
- javascript - React Native - 基于计算值的输入动态更新
- flutter - 出现键盘时重建整个小部件树
- gitlab-ci - Gitlab CI/CD 始终在开发分支中运行,或者当提交匹配包含关键字时
- vb.net - TcpClient 发送数据的最大数据包大小