[英]merging rows to a single row in pandas based on timestamp
我有一個看起來像的熊貓數據框
Time C1 C2
08:00:20 5 nan
08:00:40 nan 6
08:05:12 10 nan
08:05:32 nan 14
我想將與時間密切相關的行合並到一行並從我的數據框中刪除空值,就像這樣
Time C1 C2
08:00 5 6
08:05 10 14
有人可以幫助我如何合並行以獲得此類輸出
如果Time
是字符串,則使用前 5 個值索引並傳遞給GroupBy.first
:
df1 = df.groupby(df.pop('Time').str[:5]).first().reset_index()
print (df1)
Time C1 C2
0 08:00 5.0 6.0
1 08:05 10.0 14.0
如果列中的datetime
時間使用Series.dt.strftime
:
df['Time'] = pd.to_datetime(df['Time'])
df1 = df.groupby(df.pop('Time').dt.strftime('%H:%M')).first().reset_index()
print (df1)
Time C1 C2
0 08:00 5.0 6.0
1 08:05 10.0 14.0
使用bfill
和drop_duplicates
:
df['Time'] = pd.to_datetime(df['Time']).dt.strftime('%H:%M')
df[['C1', 'C2']] = df.groupby('Time').bfill()
df.drop_duplicates('Time')
Time C1 C2
0 08:00 5.0 6.0
2 08:05 10.0 14.0
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.