我用熊猫来构造和处理数据。
这里有一个数据框,其中日期是索引、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').resample('1S').ffill())给出以下错误消息:
ValueError: cannot reindex a non-unique index with a method or limit
有什么想法吗?谢谢!
似乎在列
beginning_time
和end_time
中存在重复项问题,我尝试模拟它:一种可能的解决方案是添加^{} ,并使用旧的way作为
resample
和groupby
:您还可以通过^{} 检查重复项:
相关问题 更多 >
编程相关推荐