📅  最后修改于: 2023-12-03 15:34:12.132000             🧑  作者: Mango
数据框是Pandas中最常用的数据结构之一,它类似于Excel中的电子表格,其中包含多个行和列,每个列都有一个名称和数据类型。本文将介绍如何获取和改变数据框的形状。
要获取数据框的形状,可以使用.shape
属性。
import pandas as pd
df = pd.DataFrame({'A': [1, 2, 3], 'B': [4, 5, 6]})
print(df.shape)
输出:
(3, 2)
这意味着df
有3行和2列。
要转置数据框,可以使用.T
属性。
import pandas as pd
df = pd.DataFrame({'A': [1, 2, 3], 'B': [4, 5, 6]})
print(df.T)
输出:
0 1 2
A 1 2 3
B 4 5 6
这意味着行变成了列,列变成了行。
要重塑数据框的形状,可以使用.stack()
、.unstack()
和.melt()
方法。
.stack()
.stack()
方法将列从列标签转换为索引,生成一个多层级索引的Series。
import pandas as pd
df = pd.DataFrame({'A': [1, 2, 3], 'B': [4, 5, 6]})
stacked = df.stack()
print(stacked)
输出:
0 A 1
B 4
1 A 2
B 5
2 A 3
B 6
dtype: int64
这会导致一个新的Series,其中行标签包含原始行和列标签,第一个层级对应行,第二个层级对应列。
.unstack()
.unstack()
方法的作用与.stack()
方法相反,它将多层级索引的Series转换为数据框。
import pandas as pd
df = pd.DataFrame({'A': [1, 2, 3], 'B': [4, 5, 6]})
stacked = df.stack()
unstacked = stacked.unstack()
print(unstacked)
输出:
A B
0 1 4
1 2 5
2 3 6
这将多层级索引转换为列标签,行标签从left to right。
.melt()
.melt()
方法是在数据框中进行长格式(long format)转换的常用方法之一。它将数据框的列展开为两个或多个新的列。
import pandas as pd
df = pd.DataFrame({'A': [1, 2, 3], 'B': [4, 5, 6]})
melted = df.melt()
print(melted)
输出:
variable value
0 A 1
1 A 2
2 A 3
3 B 4
4 B 5
5 B 6
这将自动匹配一对变量和值列。可选参数id_vars
和value_vars
可用于列表不同的列以展开和不展开。