python - 熊猫:按字符串搜索数据框行然后修改[无标题]
问题描述
一点咸菜。我试图通过搜索特定的字符串值在数据框中找到一行,然后将字符串值替换为零。我正在使用以下代码:
selectRow = df[df.iloc[:,0].str.match(ID)]
selectRow.replace(ID, 0)
其中 ID 是一些字符串。这将按预期返回数据框中的一行。但是,我似乎无法修改数据框中 selectRow的值,因为此时selectRow是一个单独的数据框。
我知道我错过了一些非常基本的东西。任何帮助将非常感激!
中国
解决方案
您可以在一行中执行此操作,如下所示:
方法一:
ID = `eee`
df.iloc[:,0].loc[df.iloc[:,0]==ID] = 0
输出:
C1 C2
0 aaa bbb
1 ccc ddd
2 0 fff
3 ggg eee hhh
方法二:
df.iloc[:,0].replace(to_replace=ID, value=0, regex=False)
输出:
C1 C2
0 aaa bbb
1 ccc ddd
2 0 fff
3 ggg eee hhh
如果您设置regex=True
,那也可以根据其他出现的 来调整行ID
。
输出:
C1 C2
0 aaa bbb
1 ccc ddd
2 0 fff
3 0 hhh
虚拟数据
df = pd.DataFrame([['aaa','bbb'],['ccc','ddd'],['eee','fff'],['ggg eee','hhh']], columns=['C1','C2'])
print(df)
输出:
C1 C2
0 aaa bbb
1 ccc ddd
2 eee fff
3 ggg eee hhh
推荐阅读
- angular -
不附加 到 cdk-overlay-container - c++ - LLVM KaleidoscopeJIT:如何查看错误?
- kubernetes - 尝试将加密的 AWS EFS 与 EKS 中的 efs-csi-node 连接时出现挂载错误
- sql - 在 SQL Server 中将单个值与逗号分隔值进行比较
- python - 从字符串值创建唯一的短 ID
- python - 如何使用 GnuPG (gpg) 可执行文件和依赖项 (PyInstaller) 冻结 python 应用程序
- c# - UWP 相当于 Android 的 SpannableString,内部带有图像
- python - 如何将原始电子邮件的内容解析为熊猫数据框对象
- python - 杀死所有机器中的 MPI 进程
- php - 在 mysql php 搜索中突出显示搜索词,忽略大小写敏感