-1
は、次のように私はデータフレームがあると、行のNA値持つ列を削除する - Pythonの
import pandas as pd
columns=['A','B','C','D', 'E', 'F']
index=['1','2','3','4','5','6']
df = pd.DataFrame(columns=columns,index=index)
df['D']['1'] = 1
df['E'] = 1
df['F']['1'] = 1
df['A']['2'] = 1
df['B']['3'] = 1
df['C']['4'] = 1
df['A']['5'] = 1
df['B']['5'] = 1
df['C']['5'] = 1
df['D']['6'] = 1
df['F']['6'] = 1
df
A B C D E F
1 NaN NaN NaN 1 1 1
2 1 NaN NaN NaN 1 NaN
3 NaN 1 NaN NaN 1 NaN
4 NaN NaN 1 NaN 1 NaN
5 1 1 1 NaN 1 NaN
6 NaN NaN NaN 1 1 1
を私の状態は私が唯一のときA、B、C(一緒に値を持つ列を削除したいです)に値がありません。どの列がA列、B列、C列とも互いに排他的であるかを知りたい。私はAまたはBまたはCに値があるときだけ値を持つ列を見つけることに興味があります。ここでの出力は、D、F列を削除することです。しかし、私のデータフレームには400の列があり、これをA、B、Cの残りの列に対してチェックする方法が必要です。私は考えることができます
一つの方法、
、
df = df[np.isfinite(df['A'])]
df = df[np.isfinite(df['B'])]
df = df[np.isfinite(df['C'])]
C
をA、BからNAの行を削除し、すべての列のNAカウントを取得し、行の合計数を確認し、df.isnull().sum()
と一致する数を削除します。
これを行うにはより効率的な方法がありますか?
おかげ
対応する列を削除します。それを行う方法を見つけることができますか? – haimen
あなたは説明に必要な結果を追加できますか? –