如何在python中将无序索引重置为有序索引?

时间:2015-04-01 06:52:11

标签: python pandas dataframe

我有一个如下的数据框

的TextData

   id   user_category   operator   circle  
0  23       1           vodafone   mumbai  
1  45       2           airtel     andhra  
2  65       3           airtel     chennai  
3  23       6           vodafone   mumbai  
4  45       1           airtel     gurgaon  
5  65       3           airtel     ongole  
6  23       4           vodafone   mumbai  
7  45       1           airtel     telangana  
8  65       3           airtel     chennai  

在我的数据中,用户类别中的1,2,4,6是交易性的,而user_category中的3是促销数据。所以我通过使用以下命令对其进行了划分

transactional = textdata[textdata['user_category'].isin([1,2,4,6])]
promotional = textdata[textdata['user_category'].isin([1])]

所以我得到了交易和促销的输出,如下所示

事务

   id   user_category   operator   circle  
0  23       1           vodafone   mumbai  
1  45       2           airtel     andhra      
3  23       6           vodafone   mumbai  
4  45       1           airtel     gurgaon  
6  23       4           vodafone   mumbai  
7  45       1           airtel     telangana  

促销

    id   user_category   operator   circle 
 2  65       3           airtel     chennai  
 8  65       3           airtel     chennai 
 5  65       3           airtel     ongole  

但我期待的是订购索引 预期产出:

事务

   id   user_category   operator   circle  
0  23       1           vodafone   mumbai  
1  45       2           airtel     andhra      
2  23       6           vodafone   mumbai  
3  45       1           airtel     gurgaon  
4  23       4           vodafone   mumbai  
5  45       1           airtel     telangana  

促销

    id   user_category   operator   circle 
 1  65       3           airtel     chennai  
 2  65       3           airtel     chennai 
 3  65       3           airtel     ongole  

这是我为此尝试的方式

transactional.reset_index(inplace = True)

这就是我的方式

交易

    index  id   user_category   operator   circle  
 0    0    23       1           vodafone   mumbai  
 1    1    45       2           airtel     andhra      
 2    3    23       6           vodafone   mumbai  
 3    4    45       1           airtel     gurgaon  
 4    6    23       4           vodafone   mumbai  
 5    7    45       1           airtel     telangana  

但我期待以下方式

交易

   id   user_category   operator   circle  
0  23       1           vodafone   mumbai  
1  45       2           airtel     andhra      
2  23       6           vodafone   mumbai  
3  45       1           airtel     gurgaon  
4  23       4           vodafone   mumbai  
5  45       1           airtel     telangana  

请帮帮我怎么做。

但不要这样建议我

del transactional['index']

提前致谢

1 个答案:

答案 0 :(得分:1)

使用reset_indexdrop=True选项。

  

drop:boolean,默认为False。   不要尝试将索引插入到dataframe列中。这会将索引重置为默认整数索引

所以,而不是打电话:

transactional.reset_index(inplace = True)

执行:

transactional.reset_index(inplace = True, drop=True)