dataframe方法pivot_table排序
时间: 2023-11-30 13:04:29 浏览: 45
使用sort_values()方法可以对pivot_table进行排序。可以指定按照哪一列进行排序,以及升序还是降序排序。示例代码如下:
```
import pandas as pd
# 创建示例数据
data = {
'name': ['Alice', 'Bob', 'Charlie', 'David', 'Emily', 'Frank', 'Grace', 'Harry'],
'gender': ['F', 'M', 'M', 'M', 'F', 'M', 'F', 'M'],
'class': ['A', 'B', 'A', 'B', 'C', 'C', 'A', 'B'],
'score': [80, 70, 90, 85, 95, 75, 85, 80]
}
df = pd.DataFrame(data)
# 使用pivot_table计算平均分,按照班级升序排序
pivot_table = df.pivot_table(index='class', values='score', aggfunc='mean')
pivot_table = pivot_table.sort_values(by='score', ascending=True)
print(pivot_table)
```
输出结果为:
```
score
class
C 85.000000
B 78.333333
A 85.000000
```
相关问题
解释下这段代码 第三方商品 __df1 = __temp_df[__temp_df['show_name'] == '第三方商品'] if not __df1.empty: __df1 = __df1.pivot_table(index=['name', 'show_name'], values=['buy_num'], aggfunc=np.sum).reset_index() else: __df1 = __df1[['name', 'show_name', 'buy_num']] # 非第三方商品 __df2 = __temp_df[__temp_df['show_name'] != '第三方商品'] if not __df2.empty: __df2 = __df2.pivot_table(index=['gt_uuid', 'show_name'] ,values=['buy_num'], aggfunc=np.sum).reset_index() __df2 = pd.merge(left=__df2, right=pd.DataFrame(s_gt_rv, columns=['gt_uuid', 'goods_name']), how='left', on='gt_uuid') __df2 = __df2[['goods_name', 'show_name', 'buy_num']] __df2.rename(columns={'goods_name': 'name'}, inplace=True) else: __df2 = __df2[['name', 'show_name', 'buy_num']] __temp_df = pd.concat([__df1, __df2]) del __df1, __df2 __temp_df.rename(columns={'name': 'goods_name', 'show_name': 'gc_name', 'buy_num': 'num'}, inplace=True) __temp_df.sort_values(by='num', ascending=False, inplace=True) return_data['goods']['goods_list'] = __temp_df.to_dict(orient='records') __temp_df = __temp_df[['gc_name', 'num']] __temp_df = __temp_df.pivot_table(index='gc_name', values='num', aggfunc=np.sum).reset_index() __temp_df.sort_values(by='num', ascending=False, inplace=True) return_data['goods']['gc_list'] = __temp_df.to_dict(orient='records') del __temp_df
这段代码是对一个名为 `__temp_df` 的数据框进行处理,并将处理结果存储在 `return_data` 字典的 `goods` 键下。
首先,根据条件 `__temp_df['show_name'] == '第三方商品'`,筛选出满足条件的行,存储在 `__df1` 中。如果 `__df1` 不为空,则对其进行数据透视操作,按照 `name` 和 `show_name` 分组,计算 `buy_num` 的总和,并重置索引。否则,保留 `__df1` 的 `name`、`show_name` 和 `buy_num` 列。
接着,根据条件 `__temp_df['show_name'] != '第三方商品'`,筛选出满足条件的行,存储在 `__df2` 中。如果 `__df2` 不为空,则对其进行数据透视操作,按照 `gt_uuid` 和 `show_name` 分组,计算 `buy_num` 的总和,并重置索引。然后,将 `__df2` 与一个包含列名为 `['gt_uuid', 'goods_name']` 的 DataFrame 进行左连接,并将结果存储在 `__df2` 中。最后,保留 `__df2` 的 `goods_name`、`show_name` 和 `buy_num` 列,并将列名 `goods_name` 改为 `name`。
接下来,通过合并 `__df1` 和 `__df2` 构成新的数据框 `__temp_df`。之后,删除 `__df1` 和 `__df2` 变量。
然后,对 `__temp_df` 进行列名的重命名,将 `name` 改为 `goods_name`,`show_name` 改为 `gc_name`,`buy_num` 改为 `num`。将 `__temp_df` 按照 `num` 降序排序。
接着,将 `__temp_df` 转换为字典格式,并将结果存储在 `return_data` 字典的 `goods_list` 键下。再次对 `__temp_df` 进行处理,只保留 `gc_name` 和 `num` 两列,并进行数据透视操作,按照 `gc_name` 分组,计算 `num` 的总和,并重置索引。最后,将结果按照 `num` 降序排序。
最后,将处理后的 `__temp_df` 转换为字典格式,并将结果存储在 `return_data` 字典的 `gc_list` 键下。最后,删除 `__temp_df` 变量。
DataFrame常用方法
DataFrame是Pandas库中最常用的数据结构之一,它类似于Excel表格,由多行多列的数据组成。下面介绍一些DataFrame常用的方法:
1. head()和tail()方法:分别返回DataFrame的前几行和后几行数据,默认返回前/后五行。
2. info()方法:查看DataFrame的基本信息,包括列名、数据类型、非空值数量、内存占用等。
3. describe()方法:返回DataFrame的基本统计信息,包括计数、平均值、标准差、最小值、最大值等。
4. shape属性:返回DataFrame的行数和列数。
5. columns属性:返回DataFrame的列名。
6. index属性:返回DataFrame的索引。
7. loc[]方法:通过标签定位数据,例如df.loc[0]表示返回第一行数据。
8. iloc[]方法:通过位置定位数据,例如df.iloc[0]表示返回第一行数据。
9. drop()方法:删除指定行或列,需要指定axis参数,axis=0表示删除行,axis=1表示删除列。
10. drop_duplicates()方法:去重,可以指定去重的列。
11. groupby()方法:按照指定列进行分组,可以对分组后的数据进行聚合操作,例如求平均值、求和等。
12. merge()方法:合并多个DataFrame,需要指定合并的列。
13. pivot_table()方法:创建数据透视表,用于对数据进行汇总和分析。
14. apply()方法:对DataFrame中的每个元素应用指定的函数。
15. sort_values()方法:按照指定列排序。
16. set_index()方法:将指定列设置为索引。
这些方法只是DataFrame中的一部分常用方法,还有很多其他方法可以根据需要使用。
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)