簡體   English   中英

根據時間戳將行合並到熊貓中的單行

[英]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

使用bfilldrop_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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM