pandas 在Python中根据12个月和4个国家过滤每月数据(共48个 Dataframe )

sd2nnvve  于 2023-01-19  发布在  Python
关注(0)|答案(1)|浏览(115)

我有“onlinetrail”的数据由几列组成(发票号,描述,国家,月份)
它们是4个国家和12个月。

Country = ["France", "USA", "Mexico", "Brazil"]
Month = ["Jan", "Feb", "Mar", "Apr", "May", "Jun", "July", "Aug", "Sep", "Oct", "Nov", "Dec"]

我想根据4个国家和12个月创建48个 Dataframe (例如,法国1月,法国2月,......,巴西11月和巴西12月)。我需要的 Dataframe 模式如下所示。如何编写函数来生成48个 Dataframe ?

Data_France_Jan = onlineretail[(onlineretail.Country =="France") & (onlineretail.Month== "Jan")]\
.groupby(['InvoiceNo', 'Description'])['Quantity'].sum().unstack().reset_index().fillna(0)\
.set_index('InvoiceNo')
6kkfgxo0

6kkfgxo01#

您可以使用groupby

data = dict(list(df.groupby(['Country', 'Month']))

data现在是一个由2个关键字(国家,月份)索引的字典=〉data['France', 'Jan']
您还可以在以下操作之前过滤 Dataframe :

df = df[df['Country'].isin(Country) & df['Month'].isin(Month)]
data = dict(list(df.groupby(['Country', 'Month']))

相关问题