python中set index_在Python中Pandas:Set_index函数不会删除列

在尝试将'DF.Start', 'DF.Trader'和'DF.Product'作为索引列并删除原始列时遇到问题。代码df.set_index([df.Start, df.Trader, df.Product], drop=True)并未如预期工作,列仍然存在。错误可能是由于输入的列名不是直接的列名字符串,而是列的Series对象。

我有以下DataFrame:

df = pd.DataFrame({

'Trader': 'Carl Mark Carl Joe Joe Carl Joe Carl'.split(),

'Product': list('AAAABBAA'),

'Quantity': [5,2,5,10,1,5,2,3],

'Start' : [

DT.datetime(2013,1,1,9,0),

DT.datetime(2013,1,1,8,5),

DT.datetime(2013,2,5,14,0),

DT.datetime(2013,2,5,16,0),

DT.datetime(2013,2,8,20,0),

DT.datetime(2013,2,8,16,50),

DT.datetime(2013,2,8,7,0),

DT.datetime(2013,7,4,8,0)]})

当我尝试通过以下方式输入索引时:

df = df.set_index([df.Start, df.Trader, df.Product])

它不会删除用于索引的列.即使我明确指定它使用:

df = df.set_index([df.Start, df.Trader, df.Product], drop=True)

这是一个错误还是我的代码中有错误?

谢谢

安迪

该参数是列名称数组,但不是那些系列:

In [9]: df.set_index(['Start', 'Trader', 'Product'])

Out[9]:

Quantity

Start Trader Product

2013-01-01 09:00:00 Carl A 5

2013-01-01 08:05:00 Mark A 2

2013-02-05 14:00:00 Carl A 5

2013-02-05 16:00:00 Joe A 10

2013-02-08 20:00:00 Joe B 1

2013-02-08 16:50:00 Carl B 5

2013-02-08 07:00:00 Joe A 2

2013-07-04 08:00:00 Carl A 3

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值