python - 在数据框条目中搜索字符串并将其复制 python
问题描述
我有一个包含 3 列的数据框
它有三列说A,B,C
我想在 A列的所有行中查找特定的字符串“apple” ,如果特定行包含字符串“apple”,我想将其复制到新列D - 这样对于同一行列 D 将包含“苹果”这个词
我尝试使用 for 循环,例如:
for i in range(16):
if df.iat[i,1].str.contains('apple').any():
df.iat[i,2] = 'apple'
但它给了我错误:'str'对象没有属性'str'
我尝试了其他几种方法,但无法弄清楚如何遍历特定行
解决方案
类似于@coldspeed 的答案,但更简单一些,并且适用于几个不同的项目:
import pandas as pd
df = pd.DataFrame(
dict(Name=['apple', 'banana', 'cherry', 'apple', 'banana', 'orange'],
Value=[1, 2, 3, 4, 5, 6])
)
m = df.Name.apply(
lambda x: x in ['apple', 'orange']
)
df.loc[m, 'NEW'] = df.loc[m, 'Name']
#df
Name Value NEW
0 apple 1 apple
1 banana 2 NaN
2 cherry 3 NaN
3 apple 4 apple
4 banana 5 NaN
5 orange 6 orange
这种方法也适用于子字符串:
lambda x: 'app' in x or 'oran' in x
推荐阅读
- redux-toolkit - ReduxToolKit:在查询挂钩中使用 SelectFromResult 选项的正确方法?
- dependencies - YOCTO QA 问题:my-package 包中包含的 xxx 需要 libzlog.so.1.2()(64bit),但在 RDEPENDS 中找不到提供程序
- python - 你能在 LibreOffice 中用 Python 录制宏吗?
- php - 加载表但另一个响应未定义
- regex - 15 位数字和最多 2 位小数的正则表达式
- windows - 以较低的权限级别运行 bat 文件
- flutter - 下拉菜单在 csc 选择器颤动中处于禁用状态
- sql - SQL 查询 - 添加汇总行
- sql - JasperReports 带参数调试 SQL
- amazon-web-services - QuickSight 数据分析问题