Bir yorum yazacağım, ancak oldukça karmaşıklaşmaya başladıkça bir cevap yazacağımı düşündüm. Aşağıdaki veri çerçevesi ile başlayın : this post
gelen yanıtlara dayandığı:
import pandas as pd
import numpy as np
df = pd.DataFrame([['a', 'b', np.nan], [np.nan, 'c', 'c'], ['c', 'd', 'a']],
columns=['col1', 'col2', 'col3'])
df
col1 col2 col3
0 a b NaN
1 NaN c c
2 c d a
Ve sütunlarında bunu col2
ve col3
Tek yön Nans ile satırları tutmak istediğini söylüyorsun şudur
df.loc[pd.isnull(df[['col2', 'col3']]).any(axis=1)] col1 col2 col3 0 a b NaN
Böylece, bu, ilgilenilen sütunlarda Nans ile satırları düşürdüğümüzde, düşürülecek satırları bize verir. Aynı kod çalıştırabilir sütunları tutmak, ancak seçimi tersine bir ~
kullanmak için
df.loc[~pd.isnull(df[['col2', 'col3']]).any(axis=1)]
col1 col2 col3
1 NaN c c
2 c d a
bu eşdeğerdir:
df.dropna(subset=['col2', 'col3'])
Hangi biz testi:
df.dropna(subset=['col2', 'col3']).equals(df.loc[~pd.isnull(df[['col2', 'col3']]).any(axis=1)])
True
Elbette bunu kendi büyük veri çerçevelerinizde test edebilir, ancak aynı cevabı almalısınız.
Sorunun bu çözümünü gerçekten çok beğendim. Ancak, '-' 'nin lehine kabul edilmediğini unutmayın. – johnchase