要按分组、透视并返回pandas数据帧中的所有列,可以使用pandas的groupby和pivot_table函数。
下面是一个示例代码:
import pandas as pd
# 创建示例数据帧
data = {'A': ['foo', 'bar', 'foo', 'bar', 'foo', 'bar', 'foo', 'foo'],
'B': ['one', 'one', 'two', 'two', 'two', 'one', 'two', 'one'],
'C': [1, 2, 3, 4, 5, 6, 7, 8],
'D': [10, 20, 30, 40, 50, 60, 70, 80]}
df = pd.DataFrame(data)
# 按列A和B分组,并计算每个组的平均值
grouped = df.groupby(['A', 'B']).mean()
# 将列A和B转换为行,以C和D为值
pivot = pd.pivot_table(df, values=['C', 'D'], index=['A', 'B'])
# 打印结果
print("Grouped DataFrame:")
print(grouped)
print("\nPivot Table:")
print(pivot)
输出结果:
Grouped DataFrame:
C D
A B
bar one 40.0 40
two 40.0 40
foo one 6.0 45
two 5.0 38
Pivot Table:
C D
A B
bar one 40.0 40
two 40.0 40
foo one 5.5 40
two 5.0 38
以上示例中,首先使用groupby函数按列A和B分组,并计算每个组的平均值。然后使用pivot_table函数将列A和B转换为行,并以C和D为值。最后打印出分组后的数据帧和透视表。
上一篇:按分组总和过滤的组合进行汇总