gpt4 book ai didi

python - 如果数据帧连接中的值不匹配,如何替换下一行的值

转载 作者:太空宇宙 更新时间:2023-11-03 14:02:33 27 4
gpt4 key购买 nike

我有两个数据帧,我试图将它们连接到一个键上,但在某些行没有匹配的行,所以我使用 bfill 方法,但它填充了输出中的值我想要用其他数据帧的下一个值填充它。

df1:

rcd_date  
2012-01-30
2012-02-29
2012-03-30
2012-04-30

df2:

nav_date   mfv_gross
2012-01-30 10.00
2012-01-31 10.00
2012-02-01 10.17
2012-02-06 10.50
2012-02-29 11.06
2012-03-31 10.68
2012-04-01 10.76
2012-04-28 10.87
2012-04-29 10.94
2012-04-30 10.97

我的代码:

joined = cash_df.set_index('rcd_date').join(nav_data.set_index('nav_date')).fillna(method='bfill')

输出:

rcd_date    mfv_gross
2012-01-30 10.00
2012-02-29 11.06
2012-03-30 10.97
2012-04-30 10.97

期望的输出:

rcd_date    mfv_gross
2012-01-30 10.00
2012-02-29 11.06
2012-03-30 10.68
2012-04-30 10.97

最佳答案

使用reindex使用 date_range 的方法 'bfill'df1['rcd_date'] 的最小和最大日期创建:

rng = pd.date_range(df1['rcd_date'].min(), df1['rcd_date'].max())
df2 = df2.set_index('nav_date').reindex(rng, method='bfill')
df = df1.set_index('rcd_date').join(df2)
print (df)
mfv_gross
rcd_date
2012-01-30 10.00
2012-02-29 10.78
2012-03-30 10.68
2012-04-30 10.97

关于python - 如果数据帧连接中的值不匹配,如何替换下一行的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49147325/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com