【发布时间】:2021-02-13 08:58:52
【问题描述】:
我需要您对以下代码的帮助。我有 df1 与我试图与 df2 合并的汇率和日期列。 df1 缺少汇率值(周末和节假日)。对于周末汇率值,我想使用最后一个可用值(例如,如果 2019-05-01 的汇率为 nan,我希望它使用 2019-04-01 汇率值)。我尝试了两种方法均未成功:
- 从 DF1 中删除 nan 值,如果找不到日期,则以某种方式指示合并以获取最后一个可用值(因为我们已将其删除)
- 用最后一个可用值填充 df1 nan 值。
这是两个数据框(如果您复制并粘贴它,则会收到无法识别时间戳名称的错误。我无法将日期值粘贴到此处,因为我总是将日期值作为时间戳对象获取)。我希望你能帮助我解决这两种方法,因为我相信知道它会很有用。
df1={'Fecha': {0: Timestamp('2019-01-01 00:00:00'),
1: Timestamp('2019-01-02 00:00:00'),
2: Timestamp('2019-01-03 00:00:00'),
3: Timestamp('2019-01-04 00:00:00'),
4: Timestamp('2019-01-05 00:00:00'),
5: Timestamp('2019-01-06 00:00:00'),
6: Timestamp('2019-01-07 00:00:00'),
7: Timestamp('2019-01-08 00:00:00'),
8: Timestamp('2019-01-09 00:00:00'),
9: Timestamp('2019-01-10 00:00:00')},
'ER': {0: nan,
1: 19.1098,
2: 19.2978,
3: 19.2169,
4: nan,
5: nan,
6: 19.076,
7: 19.1627,
8: nan,
9: 19.7792}}
df2={'Fecha': {0: Timestamp('2019-01-01 00:00:00'),
1: Timestamp('2019-01-02 00:00:00'),
2: Timestamp('2019-01-03 00:00:00'),
3: Timestamp('2019-01-04 00:00:00'),
4: Timestamp('2019-01-05 00:00:00'),
5: Timestamp('2019-01-06 00:00:00'),
6: Timestamp('2019-01-07 00:00:00'),
7: Timestamp('2019-01-08 00:00:00'),
8: Timestamp('2019-01-09 00:00:00'),
9: Timestamp('2019-01-10 00:00:00')},
'letters': {0: "a",
1: "b",
2: "c",
3: "d",
4: "e",
5: "f",
6: "g",
7: "h",
8: "i",
9: "j"}}
非常感谢!
【问题讨论】:
-
你试过什么代码?这看起来像 pandas fillna 和
method='ffill'应该可以工作 -
嗨!我尝试使用 lambda 应用,但我不知道如何引用以前的 na 值。
标签: python pandas dataframe date merge