我正在使用熊猫来构造和处理数据。重新采样错误:无法用方法或限制重新索引非唯一索引
我在这里有一个DataFrame的日期作为索引,Id和比特率。 我想通过ID对数据进行分组,并重新采样,同时还要对每个ID相对的时间点进行重新采样,最后保持比特率得分。
例如,给定:
df = pd.DataFrame(
{'Id' : ['CODI126640013.ts', 'CODI126622312.ts'],
'beginning_time':['2016-07-08 02:17:42', '2016-07-08 02:05:35'],
'end_time' :['2016-07-08 02:17:55', '2016-07-08 02:26:11'],
'bitrate': ['3750000', '3750000'],
'type' : ['vod', 'catchup'],
'unique_id' : ['f2514f6b-ce7e-4e1a-8f6a-3ac5d524be30', 'f2514f6b-ce7e-4e1a-8f6a-3ac5d524bb22']})
这给:
这是我的代码来获取日期的唯一列与每次Id和比特率:
df = df.drop(['type', 'unique_id'], axis=1)
df.beginning_time = pd.to_datetime(df.beginning_time)
df.end_time = pd.to_datetime(df.end_time)
df = pd.melt(df, id_vars=['Id','bitrate'], value_name='dates').drop('variable', axis=1)
df.set_index('dates', inplace=True)
其中给出:
现在,重新取样的时间! 这是我的代码:
print (df.groupby('Id').resample('1S').ffill())
这是结果:
这正是我想做的事情! 我有38279日志与相同的列,当我做同样的事情时,我有一个错误消息。第一部分完美的作品,并给出了这一点:
的部分(df.groupby( 'ID')重采样( '1')ffill()。)给出了这样的错误消息:
ValueError: cannot reindex a non-unique index with a method or limit
任何想法? Thnx!
jezrael你是我的英雄! – DataAddicted