2024-05-18 23:25:48 发布
网友
@volodymyr是对的,但是他忘记了一件事,那就是你需要设置engine='python'以使表达式工作。
示例: >>> pd_df.query('column_name.str.contains("abc")', engine='python')
>>> pd_df.query('column_name.str.contains("abc")', engine='python')
Here是有关默认引擎(“numexpr”)和“python”引擎的更多信息。另外,请记住,python在处理大数据时速度较慢。
如果必须使用df.query(),正确的语法是:
pandas.query('column_name.str.contains("abc")')
您可以很容易地将此条件与其他条件结合起来:
pandas.query('column_a.str.contains("abc") or column_b.str.contains("xyz") and column_c>100')
不过,它并不是完全等同于SQL,但仍然可以使用。
不使用query(),但这将提供您要查找的内容:
df[df.col_name.str.startswith('abc')] df Out[93]: col_name 0 this 1 that 2 abcd df[df.col_name.str.startswith('abc')] Out[94]: col_name 2 abcd
查询使用pandaseval(),并且在可以使用的范围内受到限制。如果您想使用纯SQL,可以考虑pandasql使用以下语句:
sqldf("select col_name from df where col_name like 'abc%';", locals())
或者,如果pandasstr方法的问题是列不完全是字符串类型,则可以执行以下操作:
str
df[df.col_name.str.startswith('abc').fillna(False)]
@volodymyr是对的,但是他忘记了一件事,那就是你需要设置engine='python'以使表达式工作。
示例:
>>> pd_df.query('column_name.str.contains("abc")', engine='python')
Here是有关默认引擎(“numexpr”)和“python”引擎的更多信息。另外,请记住,python在处理大数据时速度较慢。
如果必须使用df.query(),正确的语法是:
您可以很容易地将此条件与其他条件结合起来:
不过,它并不是完全等同于SQL,但仍然可以使用。
不使用query(),但这将提供您要查找的内容:
查询使用pandaseval(),并且在可以使用的范围内受到限制。如果您想使用纯SQL,可以考虑pandasql使用以下语句:
或者,如果pandas
str
方法的问题是列不完全是字符串类型,则可以执行以下操作:相关问题 更多 >
编程相关推荐