学习pandas时 关于数据结构类型的一个细节

最近在学习pandas,计算哑变量一节,在敲以下代码的时候,出现了报错:

df = DataFrame({'key': ['b', 'b', 'a', 'c', 'a', 'b'], 'data1': range(6)})
dummies = pd.get_dummies(df['key'], prefix='key')
df_with_dummies = df['data1'].join(dummies)

报错:
AttributeError: 'Series' object has no attribute 'join'
意思大概就是Sereies对象没有join()这个方法。仔细检查之下,才发现原来是第二行代码少敲了一对中括号:

dummies = pd.get_dummies(df[['key']], prefix='key')

这引发了我对pandas数据结构类型的思考,为什么这里要加两对中括号?
试验了一下:

type(df['data1'])
Out: pandas.core.series.Series
type(df[['data1']])
Out: pandas.core.series.Dataframe

原来,对于一个Dataframe,对其取索引时,加一对中括号代表将某一列以Series的类型取出,而要想以Dataframe的类型取出,则需要加两对中括号。
回到一开始的报错就是,Series对象没有join()方法,这是属于Dataframe对象才有的。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值