有了這個數據幀:刪除重複的數據框保持行,其最低空值
d = {'A' : pd.Series(['AA', 'AA', 'AA', 'BB','CC'],
index=['a', 'b', 'c', 'd','e']),
'B' : pd.Series([1., 2., 3.], index=['b', 'd','e']),
'C' : pd.Series([4., 5., 6.], index=['b', 'd', '']),
'D' : pd.Series([1., 2., 3.,4.], index=['a', 'c', 'd','e'])}
In[1]: pd.DataFrame(d)
Out[1]:
A B C D
a AA NaN NaN 1.0
b AA 1.0 4.0 NaN
c AA NaN NaN 2.0
d BB 2.0 5.0 3.0
e CC 3.0 6.0 4.0
我想砸df['A']
重複和保留該行與列在未被最少的空值下降了on
。
In[2]: pd.DataFrame(d).drop_duplicates(on='A', **magical_answer=True**)
Out[1]:
A B C D
b AA 1.0 4.0 NaN
d BB 2.0 5.0 3.0
e CC 3.0 6.0 4.0
我可以看到,如果有與空最少多個行會出現在本例中沒有列舉了可能的問題,在這種情況下,這將是非常有用的的keep : {‘first’, ‘last’}
ARG。
這是光滑的。默認情況下,如果存在具有相同數量的空值的多行,則它會保留第一條記錄。關於如何保持最後記錄的想法? –
您可以反轉這兩個系列,因爲'idxmax()'總是獲得第一個最大索引。 'df.loc [df.count(1)[:: - 1] .groupby(df.A [:: - 1])。idxmax()]'。 – Psidom