在python中合并两个不等级数

4bbkushb  于 2023-01-18  发布在  Python
关注(0)|答案(1)|浏览(132)

我有两个长度不等的数列。(日期是索引)
s1:

2006-03-25      35.27
2006-03-26      35.22
2006-03-28      35.25
2006-04-04      35.29
2006-04-05      35.46
2006-04-06      35.21
2006-04-08      35.32
2006-04-10      35.77

s2:

2006-03-25      1800
2006-03-26      1800
2006-03-27      1800
2006-03-28      1800
2006-03-29      1800
2006-03-30      1800
2006-03-31      1800
2006-04-01      2555
2006-04-02      2555
2006-04-03      2555
2006-04-04      2555
2006-04-05      2555
2006-04-06      2555
2006-04-07      2555
2006-04-08      2555
2006-04-09      2555
2006-04-10      2555

应合并系列,以便s1中每个缺失日的值为前一天的值。
输出应如下所示:

2006-03-25      35.27      1800
2006-03-26      35.22      1800
2006-03-27      35.22      1800
2006-03-28      35.25      1800
2006-03-29      35.25      1800
2006-03-30      35.25      1800
2006-03-31      35.25      1800
2006-04-01      35.25      2555
2006-04-02      35.25      2555
2006-04-03      35.25      2555
2006-04-04      35.29      2555
2006-04-05      35.46      2555
2006-04-06      35.21      2555
2006-04-07      35.21      2555
2006-04-08      35.32      2555
2006-04-09      35.32      2555
2006-04-10      35.77      2555
lsmepo6l

lsmepo6l1#

你可以把它们做成Pandas数据框,然后使用Pandas的merge方法。这意味着两个数据集的外部连接。之后使用bfill()来填充nan值。这意味着向后填充缺失值。

import pandas as pd
df1 = pd.DataFrame(s1, columns=['date', 'vol1'])
df2 = pd.DataFrame(s2, columnd=['date', 'vol2'])

result = df1.merge(df2, left_on='date', right_on='date', how='outer')
result['vol2'] = result['vol2'].bfill()

相关问题