2024-10-01 22:30:56 发布
网友
我尝试根据日期合并两个Pandas数据帧,然后将ffillNaN值合并到特定日期。我有以下数据示例:
NaN
df_1:
df_2:
我使用以下行: df = pd.merge((df_1,df_2, how='left', on=['date']
df = pd.merge((df_1,df_2, how='left', on=['date']
我明白了:
然后我想要实现的是在df['value2']中向前填充NaN值直到05/12而不是直到07/12
df['value2']
05/12
07/12
首先,将日期转换为datetime格式以使用条件操作数。默认情况下,它将返回YYYY-MM-DD
datetime
接下来,为条件ffill到05/12创建一个掩码。并使用loc表示fillna
ffill
loc
fillna
最后,将date从datetime转换回string
date
string
df['date'] = pd.to_datetime(df["date"], format="%d/%m") mask = (df["date"].lt(pd.to_datetime('05/12', format="%d/%m"))) df.loc[mask, "val2"] = df.loc[mask, "val2"].fillna(method="ffill") df['date'] = df['date'].dt.strftime('%d/%m')
首先,将日期转换为
datetime
格式以使用条件操作数。默认情况下,它将返回YYYY-MM-DD接下来,为条件
ffill
到05/12
创建一个掩码。并使用loc
表示fillna
最后,将
date
从datetime
转换回string
相关问题 更多 >
编程相关推荐