我正在使用Pandas来构建和处理数据.
我这里有一个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']})
Run Code Online (Sandbox Code Playgroud)
这使 :
这是我的代码,每次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)
Run Code Online (Sandbox Code Playgroud)
这使 :
现在,重新抽样的时间!这是我的代码:
print (df.groupby('Id').resample('1S').ffill())
Run Code Online (Sandbox Code Playgroud)
这就是结果:
这正是我想要做的!我有38279个具有相同列的日志,当我做同样的事情时,我有一条错误消息.第一部分完美运作,并给出了:
部分(df.groupby('Id').resample('1S').ffill())给出了以下错误消息:
ValueError: cannot reindex a non-unique index with a method or limit
Run Code Online (Sandbox Code Playgroud)
有任何想法吗 ?Thnx!
我有两个数据帧:
DF ONE:
ID A B C
1 x y z
1 x y z
2 x y z
2 x y z
2 x y z
3 x y z
Run Code Online (Sandbox Code Playgroud)
DF TWO:
ID D E F
1 a b c1
2 a b c2
3 a b c3
Run Code Online (Sandbox Code Playgroud)
我想E从DF TWO中获取列,并将其放在DF ONE上,如果ID相同,那么在我得到此输出之后:
ID A B C F
1 x y z c1
1 x y z c1
2 x y z c2
2 x y z c2
2 …Run Code Online (Sandbox Code Playgroud) 我的数据如下所示:
id, date, target
1,2016-10-24,22
1,2016-10-25,31
1,2016-10-27,44
1,2016-10-28,12
2,2016-10-21,22
2,2016-10-22,31
2,2016-10-25,44
2,2016-10-27,12
Run Code Online (Sandbox Code Playgroud)
我想在id中填写缺少的日期.例如,id = 1的日期范围是2016-10-24~2016-10-28,缺少2016-10-26.此外,id = 2的日期范围是2016-10-21~2016-10-27,2016-10-23,2016-10-24和2016-10-26都不见了.我想填写缺少的日期并将目标值填写为0.
因此,我希望我的数据如下:
id, date, target
1,2016-10-24,22
1,2016-10-25,31
1,2016-10-26,0
1,2016-10-27,44
1,2016-10-28,12
2,2016-10-21,22
2,2016-10-22,31
2,2016-10-23,0
2,2016-10-24,0
2,2016-10-25,44
2,2016-10-26,0
2,2016-10-27,12
Run Code Online (Sandbox Code Playgroud)
有人能帮助我吗?
提前致谢.