Python中缺少数据点

2024-10-16 17:16:34 发布

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

我对python和一般的代码都非常陌生。我有一些数据在1分钟的时间间隔,这是可能丢失一些时间。我想填写缺失的时间和对应数据点的NaN值。这是我到目前为止,它是填补了所有数据点,而不仅仅是丢失的南。你知道吗

import pandas as pd
df = pd.read_csv("data3.csv", index_col="DateTime")
df = df.reindex(pd.date_range("11-1-2014 12:00:00", "11-1-2014 12:10:00", freq="1min"), fill_value="NaN")
df.to_csv("test3.csv")

我正在阅读的文件

                NSERC_CB04_A0401
DateTime                        
11/1/2014 0:00          1.121889
11/1/2014 0:01          1.121889
11/1/2014 0:02          1.121889
11/1/2014 0:03          1.121889
11/1/2014 0:04          1.118503
11/1/2014 0:05          1.121889
11/1/2014 0:06          1.121889
11/1/2014 0:07          1.121889
11/1/2014 0:09          1.121889
11/1/2014 0:10          1.121889

我正在写的文件

                               NSERC_CB04_A0401
2014-11-01 12:00:00              NaN
2014-11-01 12:01:00              NaN
2014-11-01 12:02:00              NaN
2014-11-01 12:03:00              NaN
2014-11-01 12:04:00              NaN
2014-11-01 12:05:00              NaN
2014-11-01 12:06:00              NaN
2014-11-01 12:07:00              NaN
2014-11-01 12:08:00              NaN
2014-11-01 12:09:00              NaN
2014-11-01 12:10:00              NaN

我想要什么:

                    NSERC_CB04_A0401
    DateTime                        
    11/1/2014 0:00          1.121889
    11/1/2014 0:01          1.121889
    11/1/2014 0:02          1.121889
    11/1/2014 0:03          1.121889
    11/1/2014 0:04          1.118503
    11/1/2014 0:05          1.121889
    11/1/2014 0:06          1.121889
    11/1/2014 0:07          1.121889
2014-11-01 12:08:00              NaN
    11/1/2014 0:09          1.121889
    11/1/2014 0:10          1.121889

Tags: 文件csv数据代码importdfdatetime间隔
1条回答
网友
1楼 · 发布于 2024-10-16 17:16:34

没问题,您在编码和python方面都是新手!你知道吗

您需要将参数parse_dates=True添加到^{},以便首先将index转换为DatetimIndex,然后再将^{}-从11-1-2014 12:00:00开始的时间更改为11-1-2014 00:00:00以进行匹配,类似的结束时间。你知道吗

另外字符串NaN不是缺失值,您需要np.nan什么是reindex中缺失数据的默认值。你知道吗

df = pd.read_csv("data3.csv", index_col="DateTime", parse_dates=True)

df = df.reindex(pd.date_range("11-1-2014 00:00:00", "11-1-2014 00:10:00", freq="1min"))
print (df)
                     NSERC_CB04_A0401
2014-11-01 00:00:00          1.121889
2014-11-01 00:01:00          1.121889
2014-11-01 00:02:00          1.121889
2014-11-01 00:03:00          1.121889
2014-11-01 00:04:00          1.118503
2014-11-01 00:05:00          1.121889
2014-11-01 00:06:00          1.121889
2014-11-01 00:07:00          1.121889
2014-11-01 00:08:00               NaN
2014-11-01 00:09:00          1.121889
2014-11-01 00:10:00          1.121889

更一般的解决方案是reindexminmaxdatetime,但这取决于您的数据:

df = df.reindex(pd.date_range(df.index.min(), df.index.max(), freq="1min"))
print (df)
                     NSERC_CB04_A0401
2014-11-01 00:00:00          1.121889
2014-11-01 00:01:00          1.121889
2014-11-01 00:02:00          1.121889
2014-11-01 00:03:00          1.121889
2014-11-01 00:04:00          1.118503
2014-11-01 00:05:00          1.121889
2014-11-01 00:06:00          1.121889
2014-11-01 00:07:00          1.121889
2014-11-01 00:08:00               NaN
2014-11-01 00:09:00          1.121889
2014-11-01 00:10:00          1.121889

如果索引解决方案中的重复项是^{},具有一些聚合函数,如meansum-也就是seresample docs

print (df)
                     NSERC_CB04_A0401
DateTime                             
2014-11-01 00:00:00          1.121889
2014-11-01 00:01:00          1.121889
2014-11-01 00:02:00          1.121889
2014-11-01 00:03:00          1.121889
2014-11-01 00:04:00          1.118503
2014-11-01 00:05:00          1.121889
2014-11-01 00:06:00          1.121889
2014-11-01 00:07:00          1.121889 <- duplicates index
2014-11-01 00:07:00          1.121889 <- duplicates index
2014-11-01 00:09:00          1.121889
2014-11-01 00:10:00          1.121889

df = df.resample('1min').mean()
print (df)
                     NSERC_CB04_A0401
DateTime                             
2014-11-01 00:00:00          1.121889
2014-11-01 00:01:00          1.121889
2014-11-01 00:02:00          1.121889
2014-11-01 00:03:00          1.121889
2014-11-01 00:04:00          1.118503
2014-11-01 00:05:00          1.121889
2014-11-01 00:06:00          1.121889
2014-11-01 00:07:00          1.121889
2014-11-01 00:08:00               NaN
2014-11-01 00:09:00          1.121889
2014-11-01 00:10:00          1.121889

相关问题 更多 >