はじめに
こういう表を、
# | hoge | fuga | piyo |
---|---|---|---|
1 | a | b | NaN |
2 | c | NaN | NaN |
3 | NaN | d | NaN |
4 | e | f | g |
こうしたい時の話。
# | hoge | fuga | piyo |
---|---|---|---|
1 | NaN | a | b |
2 | NaN | NaN | c |
3 | NaN | NaN | d |
4 | e | f | g |
方法
# 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 に反映させる。