[英]How to count entries per day?
我有一個csv文件,其中“時間”列中的下載時間為日期時間,並希望計算一天中的下載次數。 因此,示例中的輸出應為[2004-01-05 1] [2004-01-06 11]
ip time cik accession
12.108.130.jcf 05.01.04 17:56 1096142 0001179022-04-000019
12.108.130.jcf 06.01.04 08:31 1096142 0001179022-04-000005
12.108.130.jcf 06.01.04 08:34 1096142 0001179022-04-000006
12.108.130.jcf 06.01.04 08:34 1096142 0001179022-04-000007
12.108.130.jcf 06.01.04 08:35 1096142 0001179022-04-000008
12.108.130.jcf 06.01.04 08:36 1096142 0001179022-04-000009
12.108.130.jcf 06.01.04 08:36 1096142 0001179022-04-000010
12.108.130.jcf 06.01.04 08:36 1096142 0001179022-04-000011
12.108.130.jcf 06.01.04 08:37 1096142 0001179022-04-000012
12.108.130.jcf 06.01.04 08:39 1096142 0001179022-04-000013
12.108.130.jcf 06.01.04 08:39 1096142 0001179022-04-000014
12.108.130.jcf 06.01.04 08:40 1096142 0001179022-04-000015
df = pd.read_csv('12.108.130.jcf.csv')
df['time'] = pd.DatetimeIndex(df.time).normalize()
df['count'] = df.groupby('time')['time'].transform('count')
df = df[['time','count']]
print(df)
我變成這樣的輸出
time count
0 2004-01-05 1970-01-01 00:00:00.000000001
1 2004-01-06 1970-01-01 00:00:00.000000011
而且我無法解釋日期1970-01-01的來源以及計數的格式為何。
由於您不希望將數據框與計數對齊,因此
df['count'] = df.groupby('time')['time'].transform('count')
只做
df.groupby('time')['time'].count()
輸出:
time
2004-05-01 1
2004-06-01 11
Name: time, dtype: int64
由於我難以理解的原因, count
列的類型為datetime
,而Timestamp(1)
為'1970-01-01 00:00:00.000000001'
,這是Unix時間的起點+ 1微秒。
您可以使用df = df.astype({'count': int})
恢復此行為。 但是,如果沒有真實文件,很難重現該問題。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.