簡體   English   中英

如何在熊貓中按日期時間對數據進行分組?

[英]How to group data by datetime in pandas?

我有一個如下所示的數據

data = [(u'Del', datetime.datetime(2019, 11, 1, 0, 0), 59L), (u'Bom', datetime.datetime(2019, 11, 1, 0, 0), 449L), (u'Del', datetime.datetime(2019, 12, 1, 0, 0), 0L), (u'Bom', datetime.datetime(2019, 12, 1, 0, 0), 45L)]

現在我想根據時間對數據進行分組,使其看起來像這樣

data = [
         [(u'Del', datetime.datetime(2019, 11, 1, 0, 0), 59L), (u'Bom', datetime.datetime(2019, 11, 1, 0, 0), 449L)] 
        ,[(u'Del', datetime.datetime(2019, 12, 1, 0, 0), 0L), (u'Bom', datetime.datetime(2019, 12, 1, 0, 0), 45L)]
       ]

如您所見,現在它是一個列表列表,其中列表中有兩個列表,其中每個列表包含相似的datetime 例如第一個子列表看起來像這樣

[(u'Del', datetime.datetime(2019, 11, 1, 0, 0), 59L), (u'Bom', datetime.datetime(2019, 11, 1, 0, 0), 449L)]

這里第一個子列表的項目包含類似的日期時間,即datetime.datetime(2019, 11, 1, 0, 0)

第二個子列表看起來像這樣

[(u'Del', datetime.datetime(2019, 12, 1, 0, 0), 0L), (u'Bom', datetime.datetime(2019, 12, 1, 0, 0), 45L)]

這里第一個子列表的項目包含類似的日期時間,即datetime.datetime(2019, 12, 1, 0, 0)

我可以通過執行這樣的操作根據datetime對數據進行排序(盡管在這種情況下數據已經按datetime時間排序)

import pandas as pd
import datetime
import psycopg2

df = pd.DataFrame(data)
df['Date'] =pd.to_datetime(df[1])
df = df.sort_values(by='Date')

但我不能根據排序的時間對它們進行分組。 我如何使用pandas實現這一目標?

您可以執行以下操作

df = pd.DataFrame(data)
df.columns = ['place','date','value']


output = [x[1].values for x in df.groupby(date)]

輸出看起來像:

[[[u'Del', Timestamp('2019-11-01 00:00:00'), 59], [u'Bom', Timestamp('2019-11-01 00:00:00'), 449]], [[u'Del', Timestamp('2019-12-01 00:00:00'), 0], [u'Bom', Timestamp('2019-12-01 00:00:00'), 45]]]

暫無
暫無

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

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