[英]Python data-frame using pandas
我有一個數據集,如下所示
[25/May/2015:23:11:15 000]
[25/May/2015:23:11:15 000]
[25/May/2015:23:11:16 000]
[25/May/2015:23:11:16 000]
現在,我將其設為DF,並且df[0]
具有[25/May/2015:23:11:15
和df[1]
具有000]
。 我想將所有以相同秒結尾的數據發送到文件。 在上面的示例中,它們以15和16作為秒結束。 因此,所有內容都以15秒結尾,一個又一個結到另一個,還有更多
我已經嘗試了以下代碼
import pandas as pd
data = pd.read_csv('apache-access-log.txt', sep=" ", header=None)
df = pd.DataFrame(data)
print(df[0],df[1].str[-2:])
將該列轉換為datetime
將使其更容易處理,例如:
df['date'] = pd.to_datetime(df['date'], format='%d/%B/%Y:%H:%m:%S')
您可以簡單地遍歷groupby()
,例如:
In []:
for k, frame in df.groupby(df['date'].dt.second):
#frame.to_csv('file{}.csv'.format(k))
print('{}\n{}\n'.format(k, frame))
Out[]:
15
date value
0 2015-11-25 23:00:15 0
1 2015-11-25 23:00:15 0
16
date value
2 2015-11-25 23:00:16 0
3 2015-11-25 23:00:16 0
試試這個
## Convert a new column with seconds value
df['seconds'] = df.apply(lambda row: row[0].split(":")[3].split(" ")[0], axis=1)
for sec in df['seconds'].unique():
## filter by seconds
print("Resutl ",df[df['seconds'] == sec])
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.