以两种方式从 Pandas DataFrame 中提取单列,区别?

我有一个像这样创建的 Pandas DataFrame:


df = floor_temperatures.join(power_consumption, how='outer').join(outside_temperatures, how='outer')

df = df.resample('5Min').mean()

print (df)


                           floor_temperature  power_consumption  outside_temperature

timestamp

2019-01-23 00:00:00+00:00           8.350000           0.045000           -11.388889

...                                      ...                ...                  ...

2019-01-24 07:25:00+00:00          10.400000           0.060000            -8.900000

[407 rows x 3 columns]

然后我基于这样的一列创建一个新的 DataFrame:


y = df[['floor_temperature']]

print("1:")

print (y)


1:

                           floor_temperature

timestamp

2019-01-23 00:00:00+00:00           8.350000

2019-01-23 02:25:00+00:00           8.600000

...                                      ...

2019-01-24 07:25:00+00:00          10.400000

[407 rows x 1 columns]

然后我基于这样的一列创建一个新的 DataFrame:


print("2:")

y = df['floor_temperature']

print (y)


2:

timestamp

2019-01-23 00:00:00+00:00     8.350000

                               ...

2019-01-24 07:25:00+00:00    10.400000

Freq: 5T, Name: floor_temperature, Length: 407, dtype: float64

为什么最后 2 个 DataFrame 对象的打印略有不同?


第一个的页脚是“[407 行 x 1 列]”,第二个是“频率:5T,名称:地板温度,长度:407,dtype:float64”。


它们是相同的,还是它们之间有真正的区别?


波斯汪
浏览 234回答 1
1回答

猛跑小猪

方括号很重要df['floor_temperature']代表一个系列。pd.Series对象是一维的。的参数馈送pd.DataFrame.__getitem__,为此,[]是语法糖,是一个标量。df[['floor_temperature']]表示一个数据框。pd.DataFrame对象是二维的,由参数表示为列表。您所看到的是单个孤立系列和具有单个系列的数据框之间的区别。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python