这是我遇到错误的方式:
df.loc[a_list][df.a_col.isnull()]
Run Code Online (Sandbox Code Playgroud)
类型a_list为Int64Index,它包含行索引列表.所有这些行索引都属于df.
该df.a_col.isnull()部分是我需要过滤的条件.
如果我单独执行以下命令,我不会收到任何警告:
df.loc[a_list]
df[df.a_col.isnull()]
Run Code Online (Sandbox Code Playgroud)
但如果我把它们放在一起df.loc[a_list][df.a_col.isnull()],我会得到警告信息(但我可以看到结果):
布尔系列键将重新编制索引以匹配DataFrame索引
这个错误消息的含义是什么?它会影响它返回的结果吗?
我有pandas数据帧,我想在它上执行查询函数与isnull()或不是isnull()条件,如:
In [67]: df_data = pd.DataFrame({'a':[1,20,None,40,50]})
In [68]: df_data
Out[68]: a
0 1.0
1 20.0
2 NaN
3 40.0
4 50.0
Run Code Online (Sandbox Code Playgroud)
如果我使用此命令:
df_data.query('a isnull', engine='python')
Run Code Online (Sandbox Code Playgroud)
或者这个命令:
df_data.query('a isnull()', engine='python')
Run Code Online (Sandbox Code Playgroud)
我收到一个错误:
In [75]: df_data.query('a isnull', engine='python')
File "<unknown>", line 1 a isnull
SyntaxError: invalid syntax
In [76]: df_data.query('a isnull()', engine='python')
File "<unknown>", line 1 a isnull ()
SyntaxError: invalid syntax
Run Code Online (Sandbox Code Playgroud)
这样做的正确方法是什么?
谢谢.
我有一个包含不同dtypes列的数据框,我需要 pandas.query用来过滤列.
列可以包含缺失值:NaN,None并且NaT我需要显示包含此类值的行.有没有办法在传递给的表达式中执行此操作pandas.query?我知道它可以使用不同的方法完成,但我需要知道它是否可以通过query
对于布尔列,我可以通过声明来使用解决方法:
df.query('col not in (True, False)')
Run Code Online (Sandbox Code Playgroud)
但这不适用于其他类型的列.任何帮助表示赞赏,包括解决方法.
我想使用 Pandas 中的 .query() 方法创建 isna() 子句
但我收到错误。
对于可重现的示例:
import pandas as pd
import seaborn as sns
mpg = sns.load_dataset('mpg')
mpg[mpg['cylinders'].isna()] # This works
mpg.query('cylinders.isna()') # This raises an exception
TypeError: 'Series' objects are mutable, thus they cannot be hashed
Run Code Online (Sandbox Code Playgroud)