import pandas as pd
df = pd.DataFrame([['NewJersy',0,'2020-08-29'],
['NewJersy',12,'2020-08-30'],
['NewJersy',12,'2020-08-31'],
['NewJersy',None,'2020-09-01'],
['NewJersy',None,'2020-09-02'],
['NewJersy',None,'2020-09-03'],
['NewJersy',5,'2020-09-04'],
['NewJersy',5,'2020-09-05'],
['NewJersy',None,'2020-09-06'],
['NewYork',None,'2020-08-29'],
['NewYork',None,'2020-08-30'],
['NewYork',8,'2020-08-31'],
['NewYork',7,'2020-09-01'],
['NewYork',None,'2020-09-02'],
['NewYork',None,'2020-09-03']],
columns=['FName', 'FVal', 'GDate'])
print(df)
我想用以前的记录值填充空值。例如,对于20-09-01到20-09-03,列FValue的值为NULL。空值应替换为先前有效值(即20-08-31)中的值12
此外,如果日期2020-08-29的值为空,则应将其替换为零,因为它是第一个日期,并且没有以前的记录
我尝试了下面的代码,但没有工作
df['F']=df['F'].fillna(方法='ffill')
检查此处的预期值: Fill Null Values image
谢谢
您应首先确保数据帧随时间排序,以防:
然后必须用0填充第一个值:
然后像您所做的那样向前填充:
请注意,列名是
FVal
而不是F
您可以尝试以下方法:
输出
不确定这是否是你想要的。但这就是我要做的
相关问题 更多 >
编程相关推荐