[英]Drop rows with NaNs based on other column values
我對刪除所有包含空值的行沒有問題,但是我只希望某些行包含空值並保留其他行
例如:
index city lo hi
0 Chicago nan 75
1 Boston nan nan
2 New York 54 89
3 Miami nan nan
4 Seattle 49 nan
請記住,我的行多於5。因此, df.dropna(axis=0, how='any')
只給我留下2 New York 54 89
但是,如果我只想讓芝加哥和邁阿密下降呢? 如何在“城市”列上設置該條件? 所以我最終會得到:
index city lo hi
1 Boston nan nan
2 New York 54 89
4 Seattle 49 nan
使用isin
查找特定城市的所有行,然后沿第一個軸使用isnull
,並從原始數據框中刪除所有包含空值的行。
cities = ['Miami', 'Boston']
idx = df[df.city.isin(['Boston', 'Miami'])].isnull().any(1).index
df = df.loc[df.index.difference(idx)]
print(df)
index city lo hi
0 0 Chicago NaN 75.0
2 2 New York 54.0 89.0
4 4 Seattle 49.0 NaN
index.difference
將返回所有索引值df.index
不在idx
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.