数百の列と数千の行を持つデータフレームがありますが、基本的な構造は次のとおりです。
Index 0 1 2
0 AAA NaN AAA
1 NaN BBB NaN
2 NaN NaN CCC
3 DDD DDD DDD
2つの新しい列を追加したいと思います。1つは各行の最初の値に等しいidで、2つ目は各行の値のカウントになります。このようになります。明確にするために、すべての行は常に同じ値になります。
Index id count 0 1 2
0 AAA 2 AAA NaN AAA
1 BBB 1 NaN BBB NaN
2 CCC 1 NaN NaN CCC
3 DDD 3 DDD DDD DDD
これを行う方法を見つけるのに助けがあれば大歓迎です。ありがとう
これはうまくいくはずです。
df['id'] = df.bfill(axis=1).iloc[:, 0].fillna('All NANs')
df['count'] = df.drop(columns=["id"]).notnull().sum(axis=1)
列の順序を維持するには:
df = df[list(df.columns[-2:]) + list(df.columns[:-2])]
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加