python - pd.DataFrame.all 中切换的 axis 参数的含义

标签 python pandas dataframe

我有以下数据框:

>>> df = pd.DataFrame([[True, np.nan, False],[True,np.nan,False],[True,np.nan,False]])
>>> df
      0   1      2
0  True NaN  False
1  True NaN  False
2  True NaN  False

根据docs ,执行 df.all(axis=1,skipna=True) 对应于检查所有值是否按列为 true,因此我希望它给出 True,True,False,但它给出 False,False,False。看来axis的含义颠倒了,axis=0是columnwise的。

这似乎与 DataFrame.dropna 中 axis 的含义相矛盾,例如,

>>> df.dropna(axis=1)
      0      2
0  True  False
1  True  False
2  True  False

以及 np.delete .

这是故意的吗?如果是这样,为什么?

最佳答案

我认为这是文档中的一个错误,因为此方法将调用 numpy.all 如果您比较输出,它们是相同的:

In [211]:

np.all(df,axis=0)
Out[211]:
array([True, nan, False], dtype=object)
In [212]:

np.all(df, axis=1)
Out[212]:
array([False, False, False], dtype=object)

此外,dropnanp.delete 同意输出:

In [213]:

df.dropna(axis=1)
Out[213]:
      0      2
0  True  False
1  True  False
2  True  False
In [222]:

np.delete(df.values, 1,axis=1)
Out[222]:
array([[True, False],
       [True, False],
       [True, False]], dtype=object)

关于python - pd.DataFrame.all 中切换的 axis 参数的含义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26295422/

相关文章:

Python 基础 - 为什么我的文件内容不打印?

python - 如何在 Pandas 数据框中找到最大值并为其分配新值?

python - 将多列中的值汇总到字典中定义的组中

python - 使用带有元组键的字典替换 Pandas DataFrame 中的列值

python - Pandas - 分组、排序并保留第一行

python - 如何加速 ElasticSearch 索引?

python - imaplib - 在 PC 上工作但在服务器上不起作用?

python - 如何在Python中检查输入是字符串还是unicode

python - ValueError : Input contains NaN, 无穷大或值对于 dtype ('float32' 太大)。为什么?

python - 按列查找包含 NaN 元素的 pandas DataFrame 的最小值