我的資料框基本上是這樣的:
19:05:09 86
19:10:09 86
19:15:09 85
19:20:09 84
..
18:55:10 165
19:00:10 164
19:05:10 163
所以,它是24小時資料。我將列更改為日期時間以處理資料,但是都是同一天,我需要排序資料。我的意思是在 00 之后它必須是另一天。有什么想法可以這樣做嗎?
當然,我可以像這樣拆分資料:
data2[(data.times >= data['times'][0])] # first day
data2[(data2.times < data2['times'][0])] # and second day
并將另一天添加到第二天。
但是,資料包括相同格式的幾天和所有時間列。我必須根據日期時間列的第一個值逐天拆分資料 24 小時版本(顯然資料中沒有一天只有幾小時)。這樣做的最佳方法是什么?
uj5u.com熱心網友回復:
這是執行此操作的一種方法
import io
data= '''times
19:05:09
19:10:09
23:55:09
00:00:09
19:05:09
19:10:09
23:55:09
00:00:09
19:05:09
19:10:09
23:55:09
00:00:09
'''
df = pd.read_csv(io.StringIO(data), sep=' \s ', engine='python')
df['count'] = df.loc[df['times'].str[0:5]=='00:00'].groupby(df['times'].str[0:5]=='00:00').cumcount() 1
# Then back or forward fill as needed
df['count'] = df['count'].bfill()
df['count'].ffill().fillna(0)
times count
0 19:05:09 1.000
1 19:10:09 1.000
2 23:55:09 1.000
3 00:00:09 1.000
4 19:05:09 2.000
5 19:10:09 2.000
6 23:55:09 2.000
7 00:00:09 2.000
8 19:05:09 3.000
9 19:10:09 3.000
10 23:55:09 3.000
11 00:00:09 3.000
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/382552.html
上一篇:如何在R中按時間間隔分組
