Python用其他d填充缺少的值

2024-09-30 05:20:05 发布

您现在位置:Python中文网/ 问答频道 /正文

目前im正在编写一个脚本来填充时间轴中缺失的值。数据帧正在查找thusfar,值如下:

timestamp   id  value
2016-01-01 01:00:00 1   10
2016-01-01 02:00:00 1   15
2016-01-01 03:00:00 1   12
2016-01-01 04:00:00 1   NAN
2016-01-01 05:00:00 1   NAN
2016-01-01 06:00:00 1   7
2016-01-01 07:00:00 1   9
2016-01-01 01:00:00 2   10
2016-01-01 02:00:00 2   12
2016-01-01 03:00:00 2   14
2016-01-01 04:00:00 2   16
2016-01-01 05:00:00 2   8
2016-01-01 06:00:00 2   11
2016-01-01 07:00:00 2   14
2016-01-01 01:00:00 3   10
2016-01-01 02:00:00 3   12
2016-01-01 03:00:00 3   14
2016-01-01 04:00:00 3   12
2016-01-01 05:00:00 3   8
2016-01-01 06:00:00 3   9
2016-01-01 07:00:00 3   12

我想要的是通过观察另一个对象的值的上升来填充NAN值。 例如,如果对象id 2和3从3:00:00到4:00:00平均上升了50%,我可以使用这个示例中的值12,然后乘以1.5。我目前正在python中使用pandas。在

我可以通过列'value'运行一个函数,检查它是否为NAN。但我还是坚持要怎么走。在

基本上,我需要一个函数,当它找到一个缺失的值时,它会获取时间戳,然后为这个时间戳找到其他对象的值。所以在这个例子中,它在4:00:00丢失了数据,它将获取对象2的16和对象3的12。一旦完成,它将把找到的值与这个时间戳之前的值进行比较,然后除以这个值。所以16/14和12/14。这个值的平均值是1,我想用它乘以缺失值之前的值。所以1.00*12.00。然后在4:00:00填充时间戳,并在5:00:00继续


Tags: 数据对象函数脚本id示例pandasvalue
1条回答
网友
1楼 · 发布于 2024-09-30 05:20:05

你可能需要咀嚼一下,以确保熊猫能正确地看到你的NaNs。在

"""
timestamp,id,value
2016-01-01 01:00:00,1,10
2016-01-01 02:00:00,1,15
2016-01-01 03:00:00,1,12
2016-01-01 04:00:00,1,nan
2016-01-01 05:00:00,1,nan
2016-01-01 06:00:00,1,7
"""

import pandas as pd
import numpy as np

df = pd.read_clipboard(sep=",")
df.value = df.value.astype(float)
df.interpolate(method="linear")

退货:

^{pr2}$

相关问题 更多 >

    热门问题