Python 空数据帧不允许其为空
当涉及到数据帧时,我一定不能理解一些关于空的东西。我有一个带有空行的DF,但当我隔离其中一行时,它不是空的 这里我制作了一个数据帧:Python 空数据帧不允许其为空,python,pandas,dataframe,is-empty,Python,Pandas,Dataframe,Is Empty,当涉及到数据帧时,我一定不能理解一些关于空的东西。我有一个带有空行的DF,但当我隔离其中一行时,它不是空的 这里我制作了一个数据帧: >>> df = pandas.DataFrame(columns=[1,2,3], data=[[1,2,3],[1,None,3],[None, None, None],[3,2,1],[4,5,6],[None,None,None],[None,None,None]]) >>> df 1 2 3 0
>>> df = pandas.DataFrame(columns=[1,2,3], data=[[1,2,3],[1,None,3],[None, None, None],[3,2,1],[4,5,6],[None,None,None],[None,None,None]])
>>> df
1 2 3
0 1.0 2.0 3.0
1 1.0 NaN 3.0
2 NaN NaN NaN
3 3.0 2.0 1.0
4 4.0 5.0 6.0
5 NaN NaN NaN
6 NaN NaN NaN
>>> df1 = df[2:3]
>>> df1
1 2 3
2 NaN NaN NaN
>>> df1.empty
False
然后我知道第2行什么都没有,所以我检查一下
>>> df[2:3].empty
False
奇怪。因此,我将其拆分为自己的数据帧:
>>> df = pandas.DataFrame(columns=[1,2,3], data=[[1,2,3],[1,None,3],[None, None, None],[3,2,1],[4,5,6],[None,None,None],[None,None,None]])
>>> df
1 2 3
0 1.0 2.0 3.0
1 1.0 NaN 3.0
2 NaN NaN NaN
3 3.0 2.0 1.0
4 4.0 5.0 6.0
5 NaN NaN NaN
6 NaN NaN NaN
>>> df1 = df[2:3]
>>> df1
1 2 3
2 NaN NaN NaN
>>> df1.empty
False
如何检查一行中的所有元素是否为None或NaN
我猜你在找这样的东西:
In [296]: df[5:]
Out[296]:
1 2 3
5 NaN NaN NaN
6 NaN NaN NaN
In [297]: df[5:].isnull().all(1).all()
Out[297]: True
或者更好的做法是:
你误解了什么是空的。这意味着检查序列/数据帧的大小是否大于0,这意味着存在行。比如说,
df.iloc[1:0]
Empty DataFrame
Columns: [1, 2, 3]
Index: []
df.iloc[1:0].empty
True
如果要检查一行是否包含所有NAN,请使用isnull+all:
例如,这应该做到:
df[2:3].isnull().all(1).item()
True
请注意,如果切片的大小超过一行,则不能使用item。我想您必须使用isnull而不是空
您可以从选择中删除所有空值,并检查结果是否为空:
>>> df[5:].dropna(how='all').empty
True
如果您不想将NaN值计算为实数,则此值将等于
df.dropna().iloc[5:]
您选择了数据框中不存在的行
df.dropna().iloc[5:].empty
Out[921]: True
如果您有一个dataframe,并且希望删除每个列中包含NaN的所有行,那么可以这样做
df.dropna(how='all')
注意,在某些情况下,数据帧的列中也有NaN。如果在这种情况下需要删除整行:
df.dropna(how='any')
执行此操作后,您可以使用以下方法检查数据帧长度及其包含的行数:
len(df)
空意味着它的长度是0,并不是说它有所有*nans.pandas.pydata.org/pandas docs/version/0.18/generated/…检查网站示例,他们已经在错误的地方提供了解决方案ee和@MaxU I post…哈哈,应该在问题下发布,,,对不起
len(df)