您不必转置,可以指定一个轴:
df.ffill(1).bfill(1)
col1 col2
0 3.375000 4.075000
1 2.450000 1.567100
2 NaN NaN
3 3.248083 3.248083
4 2.335725 2.335725
5 2.150000 3.218750
如果您有多个列,但不想接触其中的某些列,则可以进行切片、填充和重新指定。
df
col1 col2 col3
0 3.375000 4.075000 NaN
1 2.450000 1.567100 2.0
2 NaN NaN 3.0
3 3.248083 NaN 5.0
4 NaN 2.335725 NaN
5 2.150000 3.218750 5.0
include = ['col1', 'col2']
# Or,
# exclude = ['col3']
# include = df.columns.difference(exclude)
df[include] = df[include].ffill(1).bfill(1)
df
col1 col2 col3
0 3.375000 4.075000 NaN
1 2.450000 1.567100 2.0
2 NaN NaN 3.0
3 3.248083 3.248083 5.0
4 2.335725 2.335725 NaN
5 2.150000 3.218750 5.0
如果只有两列,也可以使用
combine_first
df.col1 = df.col1.combine_first(df.col2)
df.col2 = df.col2.combine_first(df.col1)
col1 col2
0 3.375000 4.075000
1 2.450000 1.567100
2 NaN NaN
3 3.248083 3.248083
4 2.335725 2.335725
5 2.150000 3.218750