我有一个 DataFrame
. 1 列 ( name
) 具有字符串值。我想知道是否有一种方法可以使用 DataFrame.query()
根据针对特定列的部分字符串匹配来选择行。方法。
我试过:
df.query('name.str.contains("lu")')
.错误消息:“TypeError:'Series' 对象是可变的,因此它们不能被散列”df.query('"lu" in name')
.返回一个空 DataFrame
. 我使用的代码:
import pandas as pd
df = pd.DataFrame({
'name':['blue','red','blue'],
'X1':[96.32,96.01,96.05]
}, columns=['name','X1'])
print(df.query('"lu" in name').head())
print(df.query('name.str.contains("lu")').head())
我知道我可以使用
df[df['name'].str.contains("lu")]
但我更喜欢使用询问。
最佳答案
This answer is out of date. Please check @petobens' answer.
从 0.20.2 版本开始,
query
不支持部分字符串匹配。有一个open future request关于它,其中一位核心开发人员似乎同意这将是一个不错的补充。
关于python - 使用 Pandas 查询按部分字符串选择行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44933071/