私は以下のようなパンダのデータフレームを持っています:
data = {'A' :[1,2,3],
'B':[2,17,17],
'C1' :["C1",np.nan,np.nan],
'C2' :[np.nan,"C2",np.nan]}
# Create DataFrame
df = pd.DataFrame(data)
df
A B C1 C2
0 1 2 C1 NaN
1 2 17 NaN C2
2 3 17 NaN NaN
「C1」と「C2」に基づいて変数「C」を作成したい(「C4」、「C5」が存在する可能性があります。いずれかのCの値が「C」の場合= Cの値(C1、C2、C3) ....)この場合の出力は次のようになります。
A B C1 C2 C
0 1 2 C1 NaN C1
1 2 17 NaN C2 C2
2 3 17 NaN NaN NaN
これを試して
df1 = df.filter(regex='^C\d+')
df['C'] = df1[df1.isin(df1.columns)].bfill(1).iloc[:,0]
Out[117]:
A B C1 C2 C
0 1 2 C1 NaN C1
1 2 17 NaN C2 C2
2 3 17 NaN NaN NaN
独自の列名に一致する値を厳密に比較する場合eq
はisin
、次の代わりに使用します
df['C'] = df1[df1.eq(df1.columns, axis=1)].bfill(1).iloc[:,0]
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加