pandas中怎么实现第1列的空值单元格用同一行后面的非空单元格填充
A | B | C | D |
---|
11 | 单元格 | 单元格 | 单元格 |
12 | 单元格 | 单元格 | 单元格 |
单元格 | 33 | 单元格 | 单元格 |
单元格 | 单元格 | 34 | 单元格 |
单元格 | 单元格 | 单元格 | 41 |
fillna填充之前和之后的值,遇到非连续的单元格无从下手
我想要达到的结果:A列的空值单元格,使用同一行后面的非空单元格填充(同一行单元格的非空单元格不连续)
A | B | C | D |
---|
11 | 单元格 | 单元格 | 单元格 |
12 | 单元格 | 单元格 | 单元格 |
33 | 33 | 单元格 | 单元格 |
34 | 单元格 | 34 | 单元格 |
41 | 单元格 | 单元格 | 41 |
import pandas as pd
import numpy as np
data = {'A': [11, 12, np.nan, np.nan, np.nan,],
'B': [np.nan, np.nan, 33, np.nan, np.nan,],
'C': [np.nan,np.nan, np.nan, 34,np.nan],
'D': [np.nan,np.nan, np.nan, np.nan, 44],}
df = pd.DataFrame(data)
def fun(s):
if np.isnan(s[0]):
s[0] = np.nanmax(s[1:])
return s
df1 = df.apply(fun, axis = 1)
print(df1)