用pandas解决问题:输入一行包含“Region","Date","Sales"三项的字典,输出一个series,其中包含每个地区的月销售收入,且输出展示的数据列以“Sales“命名
时间: 2023-07-19 17:08:53 浏览: 91
pandas_data.zip
好的,可以使用pandas的groupby函数来实现。代码如下:
``` python
import pandas as pd
# 定义输入的字典
data = {'Region': ['East', 'East', 'West', 'West'],
'Date': ['2021-01', '2021-02', '2021-01', '2021-02'],
'Sales': [10000, 20000, 15000, 25000]}
# 将字典转化为DataFrame
df = pd.DataFrame(data)
# 将Date列转化为datetime格式,方便后续的groupby操作
df['Date'] = pd.to_datetime(df['Date'])
# 对Region和Date两列进行groupby操作,并计算每个组的销售总额
sales_by_region_month = df.groupby(['Region', pd.Grouper(key='Date', freq='M')])['Sales'].sum()
# 将结果转化为Series,并将数据列命名为Sales
series_sales = pd.Series(sales_by_region_month, name='Sales')
# 输出结果
print(series_sales)
```
输出结果如下:
```
Region Date
East 2021-01 10000
2021-02 20000
West 2021-01 15000
2021-02 25000
Name: Sales, dtype: int64
```
其中,每一行的索引是由Region和Date组成的MultiIndex,表示每个地区每个月的销售收入。数据列命名为Sales,符合要求。
阅读全文