📜  python 数据框形状 - Python (1)

📅  最后修改于: 2023-12-03 15:34:12.132000             🧑  作者: Mango

Python数据框形状

数据框是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_varsvalue_vars可用于列表不同的列以展开和不展开。