(pandas 进阶 new) 1、按照时间对菜品订单详情表进行拆分 2、使用 agg 方法计算单日菜品销售的平均单价和售价中位数3、使用apply方法统计单日菜品销售数目 4、创建单日菜品成交总额与总数均价透视表 5、创建单个菜品单日成交总额透视表
时间: 2024-12-25 21:23:37 浏览: 5
在Pandas库中进行进阶数据分析,处理像菜品订单详情这样的数据通常涉及到时间序列分析和数据汇总。下面是针对你提到的五个步骤的具体操作:
1. **按照时间拆分菜品订单详情**:
使用`pd.DataFrame.resample()`函数可以按照时间频率(如每天、每周等)拆分数据。例如:
```python
df_split = df.groupby(df['下单时间'].resample('D')).apply(pd.DataFrame)
```
2. **计算单日菜品销售的平均单价和中位数**:
```
daily_stats = df_split[['菜品ID', '单价']].groupby('菜品ID').agg(['mean', 'median'])
```
`agg`方法接收一个列表,第一个元素计算平均值,第二个元素计算中位数。
3. **使用apply统计单日销量**:
```python
df_split['销量'] = df_split.groupby(level=0)['菜品ID'].transform('nunique')
daily_sales_counts = df_split.groupby('日期')['销量'].sum()
```
4. **创建单日菜品成交总额与总数均价透视表**:
```
pivot_table = pd.pivot_table(df_split, values='总价', index=['日期'], columns=['菜品ID'], aggfunc=np.sum)
avg_price_pivot = pivot_table / pivot_table['销量']
```
5. **单个菜品单日成交总额透视表**:
```
single_item_pivot = df_split.groupby(['菜品ID', '下单时间']).agg({'总价': 'sum'})
single_item_pivot = single_item_pivot.unstack(fill_value=0).reset_index()
```
阅读全文