簡體   English   中英

Pandas DateTime 索引重采樣不起作用

[英]Pandas DateTime index resampling not working

我有一個熊貓數據框,如下面的代碼所示。 我正在嘗試“重新采樣”數據以獲取票證列的每日計數。 它沒有給出任何錯誤,但重新采樣它不會起作用。 這是一個更大的數據集的樣本。 我希望能夠按天、周、月、季度等進行計數。但是 .resample 選項並沒有給我一個解決方案。 我究竟做錯了什么?

import pandas as pd
df = pd.DataFrame([['2019-07-30T00:00:00','22:15:00','car'],
                    ['2013-10-12T00:00:00','0:10:00','bus'],
                    ['2014-03-31T00:00:00','9:06:00','ship'],
                    ['2014-03-31T00:00:00','8:15:00','ship'],
                    ['2014-03-31T00:00:00','12:06:00','ship'],
                    ['2014-03-31T00:00:00','9:24:00','ship'],
                    ['2013-10-12T00:00:00','9:06:00','ship'],
                    ['2018-03-31T00:00:00','9:06:00','ship']],
                    columns=['date_field','time_field','transportation'])
df['date_field2'] = pd.to_datetime(df['date_field'])
df['time_field2'] = pd.to_datetime(df['time_field'],unit = 'ns').dt.time
df['date_time_field'] = df.apply(lambda df : pd.datetime.combine(df['date_field2'],df['time_field2']),1)
df.set_index(['date_time_field'],inplace=True)
df.drop(columns=['date_field','time_field','date_field2','time_field2'],inplace=True)
df['tickets']=1
df.sort_index(inplace=True)
df.drop(columns=['transportation'],inplace=True)
df.resample('D').sum()
print('\ndaily resampling:')
print(df)

我認為您忘記將輸出分配給變量,例如:

df1 = df.resample('D').sum()
print (df1)

您的代碼也應該簡化:

#join columns together with space and pop for extract column
df['date_field'] = pd.to_datetime(df['date_field']+ ' ' + df.pop('time_field'))
#create and sorting DatetimeIndex, remove column
df = df.set_index(['date_field']).sort_index().drop(columns=['transportation'])
#resample counts
df1 = df.resample('D').size()
print (df1)
date_field
2013-10-12    2
2013-10-13    0
2013-10-14    0
2013-10-15    0
2013-10-16    0
             ..
2019-07-26    0
2019-07-27    0
2019-07-28    0
2019-07-29    0
2019-07-30    1
Freq: D, Length: 2118, dtype: int64

此外,我認為inplace不是好的做法,請檢查thisthis

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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