|
|
鱼油,是的,透视后生成的列可以排序。你可以使用 pandas 的 sort_values 方法对 DataFrame 按列值排序,或者通过调整列顺序来排序列。
以下是一个示例,展示如何对透视后的结果进行排序:
首先,创建数据并透视(基于之前的例子):
- import pandas as pd
- # 创建示例数据
- data = {
- 'Category': ['A', 'A', 'B', 'B', 'C', 'C'],
- 'Value': [10, 20, 30, 40, 50, 60]
- }
- df = pd.DataFrame(data)
- # 透视,计算总和和个数
- pivot = pd.pivot_table(df, index='Category', values='Value', aggfunc=['sum', 'count'])
- pivot_reset = pivot.reset_index()
- print("原始透视结果:")
- print(pivot_reset)
复制代码
然后,按总和列降序排序。注意,由于 aggfunc=['sum', 'count'] 创建了多级列名,需要指定正确的列名:
- # 按 'sum' 列降序排序
- sorted_pivot = pivot_reset.sort_values(by=('sum', 'Value'), ascending=False)
- print("\n按总和降序排序:")
- print(sorted_pivot)
复制代码
如果列名是单级(例如,透视后重命名了列),可以直接使用列名字符串排序。例如,重命名列后排序:
- # 重命名列为单级
- pivot_reset.columns = ['Category', 'Sum', 'Count']
- # 按 'Sum' 列升序排序
- sorted_pivot_simple = pivot_reset.sort_values(by='Sum', ascending=True)
- print("\n重命名后按 Sum 升序排序:")
- print(sorted_pivot_simple)
复制代码
如果你想调整列的顺序(例如,将 'Count' 列放在 'Sum' 列之前),可以这样操作:
- # 调整列顺序
- reordered_pivot = pivot_reset[['Category', 'Count', 'Sum']]
- print("\n调整列顺序后:")
- print(reordered_pivot)
复制代码
总之,透视后可以通过 sort_values 按值排序,或通过列选择调整顺序。希望这能解决你的问题!
以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。 |
|