python - Python:如何在某些条件下找到列中元素的索引
问题描述
这是我的数据集
import pandas as pd
df={'A':['1@1','2,3','3,4',5]}
df=pd.DataFrame(df1)
df
A
0 1@1
1 2,3
2 3,4
3 5
我想在 A 列中找到具有","
我试过这段代码,但它不工作
Index=[]
for i in df["A"]:
if ("," in i):
Index.append(df["A"][i].index)
else:
continue
解决方案
boolean indexing
与index
和用于测试子串一起使用Series.str.contains
:
Index = df.index[df["A"].str.contains(',', na=False)].tolist()
print (Index)
[1, 2]
如果还需要不匹配的值,则将掩码保存到变量,对于不匹配的索引值,则通过以下方式反转掩码~
:
mask = df["A"].str.contains(',', na=False)
Index1 = df.index[mask].tolist()
print (Index1)
[1, 2]
Index2 = df.index[~mask].tolist()
print (Index2)
[0, 3]
推荐阅读
- robotframework - ImapLibrary - Robotframework:当邮箱中没有邮件时关键字“等待电子邮件”
- c# - 为 pyCaffe 编写调试器可视化工具?
- javascript - Javascript 正则表达式主机名
- excel - 打开工作簿脚本卡在私有子中的循环中
- android - 为什么是 textView "Hello world!" 没有显示在屏幕上?
- javascript - 发出 HTTP SOAP 请求
- ios - 无法在 AVPlayer 中播放 RTMP url?
- r - R访问data.table的列
- python - 如何仅抓取唯一值并将其保存到数据库中
- api - 使用 Tyk.io 进行 API 监控