如何使用python中的pandas按数据分组

2024-09-28 05:19:56 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个哈希表,如下所示。在

import pandas as pd
import datetime

rows = [{
          "version" : "v1",
          "timestamp" : "2013-06-04T06:00:00.000Z",
          "event" : {
            "campaign_id" : "cid2504649263",
            "country" : "AU",
            "region" : "Cairns",
            "impressions" : 3000
          }
        },
        {
          "version" : "v1",
          "timestamp" : "2013-06-04T06:00:00.000Z",
          "event" : {
            "campaign_id" : "cid2504649263",
            "country" : "AU",
            "region" : "Cairns",
            "impressions" : 3000
          }
        },

        {
          "version" : "v1",
          "timestamp" : "2013-06-04T07:00:00.000Z",
          "event" : {
            "campaign_id" : "cid2504649263",
            "country" : "AU",
            "region" : "Cairns",
            "impressions" : 3000
          }
        }
            ]

hash_data = []
for row in rows:
    ts = row['timestamp']
    meta = row['event']
    ts = datetime.datetime.strptime(ts,'%Y-%m-%dT%H:%M:%S.000Z')
    meta['utcdt']=ts
    hash_data.append(meta)

data = pd.DataFrame(hash_data)
print data.values
grouped = data.groupby(['utcdt','campaign_id','region','country']).sum()
print grouped.values

[['cid2504649263' 'AU' 3000 'Cairns' datetime.datetime(2013, 6, 4, 6, 0)]
 ['cid2504649263' 'AU' 3000 'Cairns' datetime.datetime(2013, 6, 4, 6, 0)]
 ['cid2504649263' 'AU' 3000 'Cairns' datetime.datetime(2013, 6, 4, 7, 0)]]

我的问题是这个。我需要按时间汇总数据。数据应该如下所示。在熊猫身上我该怎么做?在

^{pr2}$

如果使用以下选项:

grouped = data.groupby(['utcdt','campaign_id','region','country']).sum()
print grouped.values

[[ 6000.]
 [ 3000.]]

Tags: eventiddatadatetimeversioncountryregiontimestamp
2条回答

首先使用PandasDataFramedata = DataFrame(rows),函数来有效地组织数据。然后可以使用data.groupby(['timestamp'])按时间“滚动数据”。在

Here是一个关于如何使用panda的交互式教程。大量的教程列表位于here。它将带你通过所有的基础很容易,并将完成你期待做的分析。在

您正在寻找^{}

In [11]: data.drop_duplicates()
Out[11]:
     campaign_id country  impressions  region               utcdt
0  cid2504649263      AU         3000  Cairns 2013-06-04 06:00:00
2  cid2504649263      AU         3000  Cairns 2013-06-04 07:00:00

另外,0.11.1将附带一个实验性的read_json函数,它将直接从json(文件、url或字符串)创建一个数据帧。。。

相关问题 更多 >

    热门问题