Python DataFrame形状差异

时间:2017-11-23 07:18:24

标签: python pandas dataframe

用于具有形状(143,)和(143,1)的数据框

它们是一样的吗?它们都是1列数据帧,有143行。

谢谢,

2 个答案:

答案 0 :(得分:2)

不,第一个对象实际上是pd.Series个对象,而后者是一个pd.DataFrame个对象,只有一个列。

您可以通过观察样本来理解:

df

    A   B
0   3   5
1   1   4
2   4  10
3   0  17
4  13   4
5  12   6
6   3   9
7   3   9
8   7   4
9   1   6

df['A']

0     3
1     1
2     4
3     0
4    13
5    12
6     3
7     3
8     7
9     1
Name: A, dtype: int64

df['A'].shape
(10,)

type(df['A'])
pandas.core.series.Series
df[['A']]

    A
0   3
1   1
2   4
3   0
4  13
5  12
6   3
7   3
8   7
9   1

df[['A']].shape
(10, 1)

type(df[['A']])
pandas.core.frame.DataFrame

请注意,双[[..]]表示法用于从较大的数据帧中提取数据帧子切片。

如果您有一个系列并希望将其转换为数据框,则可以使用to_frame

s = df['A']

type(s)
pandas.core.series.Series

v = s.to_frame()
v

    A
0   3
1   1
2   4
3   0
4  13
5  12
6   3
7   3
8   7
9   1

type(v)
pandas.core.frame.DataFrame

答案 1 :(得分:1)

没有形状的数据框(143,) 数据框是2D,即使它没有列或一列

pandas.DataFrame(index=range(10)).shape
(10, 0)

pandas.DataFrame(index=range(10), columns=[0]).shape
(10, 1)

pandas系列是一维对象:

pandas.Series(range(10)).shape
(10,)