关于pandas中df[[]]的解谜以及Series与DataFrame的区别

Pandas df[]与df[[]]区别
本文解析了Pandas中df[]与df[[]]的不同用法及返回类型,前者返回Series,后者返回DataFrame,并介绍了Series与DataFrame的区别。

关于pandas中df[[]]的解谜以及Series与DataFrame的区别

一直以来我们获取df中某列的值,一般采用df.parm或者df[‘parm’]的方式来获取。今天突然遇到df[[‘number’]]的形式,一开始以为别人写错了,后来才知道原来是取的东西不一样。先看对比代码:

import pandas as pd


data=pd.DataFrame({'name':['张三','李四','王五'],'age':[18,19,20],'number':[190,200,220]})
print(data)


print(data['number'],type(data['number']))
print('\n\n')
print(data[['number']],type(data[['number']]))

#结果
    name  age  number
0   张三   18     190
1   李四   19     200
2   王五   20     220
0    190
1    200
2    220
Name: number, dtype: int64 <class 'pandas.core.series.Series'>


     number
0     190
1     200
2     220 <class 'pandas.core.frame.DataFrame'>

说明一下:

df[ ]是取某列的值,传入的是列标签名称, 返回的结果是Series.

df[[ ]] 是取某整列,传入是一个列标签列表,之所以产生迷惑是因为只取了一列。写成df[[‘a’,‘b’]]就好理解了。 返回的是DataFrame.

这里简单说明一下Series与DataFrame的区别。

Series:是带行索引名的一维数值,不带列索引名。形式如下:

0    190
1    200
2    220

DataFrame: 一个表格型的数据,既带列索引名,又带行索引名。格式如下:

   number
0     190
1     200
2     220

都说DataFrame是Series的容器,其实从字面翻译来说,Series这个“有对应关系”的键值放在DataFrame这个“数据框”里的。

总结:
df[ ] : 只取某列的值,是键值, 返回Series类型
df[[ ]] :取完全的某列,是表格,返回DataFrame类型

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值