【问题标题】:Merge two unequal series in python在python中合并两个不相等的系列
【发布时间】:2023-01-17 19:20:13
【问题描述】:

我有两个长度不相等的系列。 (日期为索引)

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

【问题讨论】:

    标签: python python-3.x series


    【解决方案1】:

    您可以将它们制作成熊猫数据框,然后使用熊猫的合并方法。这意味着两个数据集的外部连接。之后使用 ffill() 填充 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'].ffill()
    

    【讨论】:

      猜你喜欢
      • 2014-09-13
      • 2017-06-19
      • 2018-05-12
      • 2021-04-04
      • 2021-10-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多