簡體   English   中英

熊貓添加groupby聚合

[英]pandas add groupby aggregations

我正在讀取多個pickle文件,在其中進行分組聚合,然后丟棄數據框。 例如,每個泡菜文件將是一個數據框,其中包含一個月內售出的商品。 我希望找到每天售出多少獨特商品。

n_items = []
for file in files:
    df = pd.read_pickle(file)

    # Get unique number of items per day
    df.timestamp = pd.to_datetime(df.timestamp)
    n_items.append(df.groupby(pd.Grouper(key='timestamp', freq='1D')).items.unique())

這將為我提供一組唯一項的groupby元素(請注意,每個數據框都跨越30天)

因此,最后一個問題是:我將如何“重組”所有這些數據框,以便每天只剩下唯一的物品。

這是我能找到的最接近的答案,但這是一個加起來的聚合,不使用unique()熊貓groupby對象的聚合

我認為你需要concat + groupby + numpy.concatenate

df = pd.concat(n_items)
df = df.groupby(level=0).apply(lambda x: np.concatenate(x.values)).reset_index()

另一種解決方案是從所有文件創建一個大dataFrame,然后進行聚合:

df = pd.concat([pd.read_pickle(file) for file in files], ignore_index=True)
df.timestamp = pd.to_datetime(df.timestamp)
df1 = df.groupby(pd.Grouper(key='timestamp', freq='1D')).items.unique()

暫無
暫無

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

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