python双中括号_python – Pandas中双括号`[[…]]`和单括号`[..]`索引之间的区别

在Python的Pandas库中,双中括号`[[...]]`和单括号`[..]`用于数据框的索引有不同的效果。单括号用于选择单一列,返回一个Series;而双中括号用于选择多个列,返回一个新的DataFrame。当只在双中括号内指定一列时,仍会返回一个包含该列的DataFrame。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

我对以下代码行的语法感到困惑:

x_values = dataframe[['Brains']]

数据框对象由2列(大脑和身体)组成

Brains Bodies

42 34

32 23

当我打印x_values时,我得到这样的东西:

Brains

0 42

1 32

就dataframe对象的属性和方法而言,我知道pandas文档,但是双括号语法让我感到困惑.

解决方法:

考虑一下:

来源DF:

In [79]: df

Out[79]:

Brains Bodies

0 42 34

1 32 23

选择一列 – 导致Pandas.Series:

In [80]: df['Brains']

Out[80]:

0 42

1 32

Name: Brains, dtype: int64

In [81]: type(df['Brains'])

Out[81]: pandas.core.series.Series

选择DataFrame的子集 – 导致DataFrame:

In [82]: df[['Brains']]

Out[82]:

Brains

0 42

1 32

In [83]: type(df[['Brains']])

Out[83]: pandas.core.frame.DataFrame

结论:第二种方法允许我们从DataFrame中选择多个列.第一个只是选择单列…

演示:

In [84]: df = pd.DataFrame(np.random.rand(5,6), columns=list('abcdef'))

In [85]: df

Out[85]:

a b c d e f

0 0.065196 0.257422 0.273534 0.831993 0.487693 0.660252

1 0.641677 0.462979 0.207757 0.597599 0.117029 0.429324

2 0.345314 0.053551 0.634602 0.143417 0.946373 0.770590

3 0.860276 0.223166 0.001615 0.212880 0.907163 0.437295

4 0.670969 0.218909 0.382810 0.275696 0.012626 0.347549

In [86]: df[['e','a','c']]

Out[86]:

e a c

0 0.487693 0.065196 0.273534

1 0.117029 0.641677 0.207757

2 0.946373 0.345314 0.634602

3 0.907163 0.860276 0.001615

4 0.012626 0.670969 0.382810

如果我们在列表中只指定一列,我们将获得一个包含一列的DataFrame:

In [87]: df[['e']]

Out[87]:

e

0 0.487693

1 0.117029

2 0.946373

3 0.907163

4 0.012626

标签:python,pandas,syntax

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值