Pandas:如何将 dataframe 从长到宽重塑
您可以使用以下基本语法将 pandas DataFrame 从长格式转换为宽格式:
df = pd. pivot (df, index=' col1 ', columns=' col2 ', values=' col3 ')
在这种情况下, col1将成为索引, col2将成为列, col3将用作DataFrame内的值。
以下示例展示了如何在实践中使用此语法。
示例:将 Pandas 数据框从长调整为宽
假设我们有以下长格式的 pandas DataFrame:
import pandas as pd #create DataFrame in long format df = pd. DataFrame ({' team ': ['A', 'A', 'A', 'A', 'B', 'B', 'B', 'B'], ' player ': [1, 2, 3, 4, 1, 2, 3, 4], ' points ': [11, 8, 10, 6, 12, 5, 9, 4]}) #view DataFrame df team player points 0 to 1 11 1 to 2 8 2 to 3 10 3 to 4 6 4 B 1 12 5 B 2 5 6 B 3 9 7 B 4 4
我们可以使用以下语法将此 DataFrame 从长格式重塑为宽格式:
#reshape DataFrame from long format to wide format
df = pd. pivot (df, index=' team ', columns=' player ', values=' points ')
#view updated DataFrame
df
player 1 2 3 4
team
A 11 8 10 6
B 12 5 9 4
DataFrame 现在采用宽格式。
我们使用“team”作为索引列,“player”作为列,“points”作为 DataFrame 内的值。
请注意,如果我们愿意,我们可以使用“player”作为索引列,使用“team”作为列:
#reshape DataFrame from long format to wide format
df = pd. pivot (df, index=' player ', columns=' team ', values=' points ')
#view updated DataFrame
df
team A B
player
1 11 12
2 8 5
3 10 9
4 6 4
这个DataFrame也是宽格式的。
注意:您可以在此处找到 pandas hub()函数的完整文档。
其他资源
以下教程解释了如何在 Python 中执行其他常见操作:
Pandas:如何将 DataFrame 从宽变为长
如何向 Pandas DataFrame 添加行
如何向 Pandas DataFrame 添加列
如何统计Pandas DataFrame中特定值的出现次数