需求
数据如下,我想把两列合并进行合并。怎么实现?
思考及实现
- 获取前列为空值的行索引
- 通过行索引取出后列的值,再赋值给前列为空的值
代码实现如下:
import pandas as pd
# 创建数据
data = [[1,None],[None,3],[4,None],[None,6]]
df = pd.DataFrame(data,columns=["A","B"])
df
# 获取A列为空的行索引
idx = df[df["A"].isnull()].index
# 通过行索引取出后列的值,再赋值给前列为空的值
df.iloc[idx,0] = df.iloc[idx,1]
结果如下:
在我一顿操作猛如虎之后,我总感觉有更简单的方法,反复回忆,想到了pd.DataFrame.fillna()
方法,其中有一个参数method
可以指定填充方向。
但是大部分朋友都以为 method=bfill
是由下往上填充。殊不知,这是以为axis=0
的情况下,如果我们改变axis=1
,实际上就变为了由右往左填充。
df.fillna(method="bfill",axis=1)