Python 将NAN替换为数据帧中早于或晚于X行的值

Python 将NAN替换为数据帧中早于或晚于X行的值,python,pandas,Python,Pandas,我有一个数据框,其中每行代表一个连续的一天,列代表总的电力消耗。有些NaN值缺少数据: ELECTRICITY 0 10 1 15 2 17 3 12 4 15 5 16 6 22 7 8 8 NaN 9 16 10 13 因为这个示例中的耗电量主要受星期几的影响,所以我想用7行中的值替换所有的NAN 我已调查了以下事项,但没有成功: fillna:仅允许我用特定值或紧邻的值替换 插值:仅允许我替换为相邻值的平均值 替换

我有一个数据框,其中每行代表一个连续的一天,列代表总的电力消耗。有些NaN值缺少数据:

     ELECTRICITY
0    10
1    15
2    17
3    12
4    15
5    16
6    22
7    8
8    NaN
9    16
10   13
因为这个示例中的耗电量主要受星期几的影响,所以我想用7行中的值替换所有的NAN

我已调查了以下事项,但没有成功:

  • fillna:仅允许我用特定值或紧邻的值替换
  • 插值:仅允许我替换为相邻值的平均值
  • 替换:似乎允许使用设置值进行条件替换

  • 谢谢您的帮助。

    使用
    fillna
    shift

    df.fillna(df.shift(7))
    
        ELECTRICITY
    0          10.0
    1          15.0
    2          17.0
    3          12.0
    4          15.0
    5          16.0
    6          22.0
    7           8.0
    8          15.0
    9          16.0
    10         13.0
    

    欢迎来到SO。你能提供一个更完整的数据示例吗?您的数据是否有可以利用的日期列,或者数据是否总是按顺序排列?此外,您还表示要替换值“from 7 rows previous或later”。在哪些情况下,您希望7天前的值,在哪些情况下,希望7天后的值?在您提供的数据中为
    NaN
    提供您期望的输出会很有帮助。可能重复:@vealkind感谢您澄清问题。我试图尽可能地简化这个例子,这样我的数据集的特性就不会使这个问题与其他人无关——也许我做得太过分了!以下是所要求的澄清。由于我不熟悉SO,请建议我是否应该更新问题:(1)是否有日期列:索引是一个带有小时时间的DatetimeIndex(2)当7行早/晚:如果7行早不是NaN,则替换为7行早,否则7天后这正是我需要的。非常感谢。