Pandas:使用asfreq

2024-04-19 05:10:45 发布

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

我有一个mm:ss.0格式的周期性时间序列,它看起来像

59:58.5
59:58.7
59:59.1
00:00.0
00:00.1
00:00.2

(这种情况重复了一段时间,没有时间标记,也就是说,持续大约5到6个小时)

我想要的是将整个系列分成30秒的间隔,最好使用asfreq。这似乎是一个由两部分组成的问题:首先,我需要将时间段划分为30秒的间隔,这比看起来的要困难,因为我没有小时标签(有没有一种简单的方法可以在Excel中添加它?)。接下来,我需要实际使用asfreq将数据分成30秒的频率。在

为了简单起见,我取了一个1小时的数据样本,并编写了一个测试程序,尝试将该子集分成30秒的间隔。在

我的数据有点像

^{pr2}$

我的代码是

df = pd.read_csv('test_file.csv',index_col=0)
df.index = pd.to_datetime(df.index,format='%M:%S.%f')
df.index.get_duplicates()
df.Data = df.Data.asfreq(str(30)+'S',method='pad')

我一直得到的错误是 ValueError:无法使用方法或限制重新索引非唯一索引

有谁知道如何处理这一点和/或如何分割周期性数据?在


Tags: csv数据方法dfdataindex间隔格式
1条回答
网友
1楼 · 发布于 2024-04-19 05:10:45

如果只想拆分它,请使用groupby。每个组将只保存该组的数据。在

grouped = df.groupby(<time column or index>)
for name, group in grouped:
    print(name, group)

出现上述错误的原因是索引中存在非唯一值。Pandas如何计算出哪一个值指向您行中的哪个索引:df.Data = df.Data.asfreq(str(30)+'S',method='pad')?在

相关问题 更多 >