Pandas.dataframe.QuerySeries.str.Startswith Tuple返回空

问题描述 投票:0回答:2

在以下示例中,最终数据框架返回空 - 我缺少什么?

df = pd.DataFrame({
    'foo':['010','020','030','040','050','060','070','080','090',None],
    'bar':['aaa','bbb','ccc','ddd','eee','fff','ggg','hhh','iii','jjj']
})
df1 = df[df.foo.str.startswith('01',na=False)]
df2 = df[df.foo.str.startswith(('01','03'),na=False)]
df3 = df.query("foo.str.startswith('01',na=False)")
df4 = df.query("foo.str.startswith(('01','03'),na=False)")
python pandas
2个回答
3
投票

以前使用tuple的元组解决此问题。

@

输出:
t = ('01', '03')

df.query("foo.str.startswith(@t, na=False)")

    foo bar
0   010 aaa
2   030 ccc

doc:


参数

Exprstr

query

似乎确实是,元组转换为列表的某个地方,然后series.str.startswith返回一个错误,因为它期望一个元组或字符串。
其他解决方案可能是使用以下代码使用str。
The query string to evaluate. You can refer to variables in the environment by prefixing them with an ‘@’ character like @a + b.
the Regex模式中的 ^字符指定在字符串开始时匹配(模仿startswith())。

0
投票

最新问题
© www.soinside.com 2019 - 2024. All rights reserved.