我使用pandas来解析excel表,其中包含一个不平衡的面板。所以在某些列中有空单元格,它们被解析为NaN
。然后我想获得没有NaN
条目的面板数据的唯一值。但是,np.isnan
失败是因为条目是字符串而nan条目是浮点数。有一个很好的出路吗?
import pandas as pd
import numpy as np
xls = pd.ExcelFile('File.xls')
data = xls.parse('Sheet1', index_col=None, na_values=['NA'])
uniqueID = pd.unique(data.values.ravel())
uniqueID[~np.isnan(uniqueID)]
答案 0 :(得分:0)
无法访问您的数据,对于pandas至少有顶级isnull
,这也适用于df
或series
,您也可以致电{{3 }}:
In [3]:
df = pd.DataFrame({'a':['asdsa', np.NaN, 98]})
df
Out[3]:
a
0 asdsa
1 NaN
2 98
In [13]:
pd.notnull(df)
Out[13]:
a
0 True
1 False
2 True
我们可以在系列中调用notnull()
来过滤行:
In [14]:
df[df['a'].notnull()]
Out[14]:
a
0 asdsa
2 98
或者我们可以在df上调用dropna
:
In [15]:
df.dropna()
Out[15]:
a
0 asdsa
2 98