skip to content
barorin&?

Pandasで条件に合致する行だけ右詰めしたい場合

/ 1 min read

はじめに

こういう表を、

#hogefugapiyo
1abNaN
2cNaNNaN
3NaNdNaN
4efg

こうしたい時の話。

#hogefugapiyo
1NaNab
2NaNNaNc
3NaNNaNd
4efg

方法

# piyo列のnullの合計が0になるまでループさせる
while df.loc[:, 'piyo'].isnull().sum() > 0:
    # piyo列のnullとなっている行をshiftを使って一つ右にずらす
    df.mask(df.loc[:, 'piyo'].isnull() == True, df.shift(axis=1, inplace=True)

mask()のオプション説明

axis=1で右に一つずらして、inplace=Trueで元の DataFrame に反映させる。