2014-03-02 25 views
3

我有一個使用pd.read_json()創建的Pandas數據框。當我讀到它時,我得到一些只有一個空列表或None的單元格,我想用這些[]來檢測行,某些列中沒有。例如:Read_json填充空列表;如何刪除這些行

feat 1 feat 2 feat 3 
0  []  []  5 
1  6   8   3 
2  None  10  NaN 

我想刪除0行和2行,因爲它們有None/NaN/empty列表。我如何用熊貓做到這一點?

回答

2

可以applymap[]NoneNaN

注:更換爲作品無,但不是[] ...這個解決方案似乎是一個有點敏感的(因此使用否定~的)。 ..

In [11]: df.applymap(lambda x: x == [] or x is None) 
Out[11]: 
    feat 1 feat 2 feat 3 
0 True True False 
1 False False False 
2 True False False 

In [12]: df.where(~df.applymap(lambda x: x == [] or x is None)) 
Out[12]: 
    feat 1 feat 2 feat 3 
0 NaN NaN  5 
1  6  8  3 
2 NaN  10  NaN 
+0

這似乎工作得很好,我和df.dropna()一起使用它。 – covariance

+0

@evancchow我發佈了[一個問題](https://github.com/pydata/pandas/issues/6518)關於這個的敏感性。很高興它對你有效! –