【问题标题】:Python Pandas sort by Time and group by user IDPython Pandas 按时间排序并按用户 ID 分组
【发布时间】:2018-10-07 07:01:48
【问题描述】:

我正在加载一个带有熊猫的 CSV 文件。它包含三列:一个包含日期和时间的列,一个包含用户 ID 的列,以及另一个“campaignID”。 示例行:

date                 user_id              campaign_id
2018-01-10 0:21:09   151312395            GOOGLE
2018-01-10 0:21:19   151312395            GOOGLE
2018-01-10 0:21:32   151312395            GOOGLE 

我想按用户 ID 对数据进行分组,然后为每个用户 ID 按时间和活动 ID 对行进行分组,应该如下所示。

user_id              date                           ad_campaign
151312395            2018-01-10 0:21:09             GOOGLE
                     2018-01-10 0:21:19             GOOGLE
                     2018-01-10 0:21:32             GOOGLE 

这是我到目前为止所做的: 将熊猫导入为 pd 将 numpy 导入为 np 导入日期时间

def dateparse(time_in_secs):
    return datetime.datetime.fromtimestamp(float(time_in_secs))
columnnames = ['date','user_id', 'ad_campaign']
columnnames, sep='\t' ,usecols=[0,1,3],index_col = 'date')
df=pd.read_csv(r'C:\Users\L\Desktop\Data.csv' , 
     sep='\t',names = columnnames, usecols=[0,1,3], 
    parse_dates=True,date_parser=dateparse)
df.date = pd.to_datetime(df.date)
df = df.sort_values(by = 'date')
g = df.groupby('user_id')['ad_campaign']
print(g)

这给出了以下输出:

<pandas.core.groupby.SeriesGroupBy object at 0x04EF26F0>
[Finished in 0.6s]

为什么打印不提供排好序的列?

【问题讨论】:

    标签: python pandas csv pandas-groupby


    【解决方案1】:

    首先,如果你在做groupby,你不需要明确地对列进行排序。

    你可以这样做:

    方法一:

    df.date = pd.to_datetime(df.date)
    g = df.groupby(['user_id','date'])['ad_campaign']
    print(g.first())
    

    方法二:

    df.set_index(['user_id','date']).sort_index()
    

    【讨论】:

    • 我不知道我是否可以在这里提出后续问题,但即使它有效,我仍然坚持下一步..
    • @LailaVanMents 我也不知道,但如果是同一个问题,你可以问。那是什么?
    • 提出了一个新问题:stackoverflow.com/questions/50099105/…
    【解决方案2】:

    你可以试试df.set_index(['user_id', 'date'])

    【讨论】:

      猜你喜欢
      • 2019-03-12
      • 1970-01-01
      • 2016-11-22
      • 2020-07-26
      • 2021-03-06
      • 2013-10-27
      • 2018-10-05
      • 2015-12-31
      • 1970-01-01
      相关资源
      最近更新 更多