我有一个包含4列和251行的DataFrame,以及一个数字级数的索引,例如1000至1250。该索引最初是必要的,以帮助加入来自4个不同数据帧的数据。但是,一旦我将4列组合在一起,我想将索引更改为从250到0的数字级数。这是因为我将对不同的数据集(以4个为一组)执行相同的操作不同的指数,例如2000到2250或500到750,但都会有相同的行数。 250到0是一种统一这些数据集的方法,但我无法弄清楚如何做到这一点。即我正在寻找能够用函数范围(250,0,-1)替换任何现有索引的东西
我尝试过使用下面的set_index以及其他一些总是会返回错误的尝试,
df.set_index(range(250, 0, -1), inplace=True)
并且在我能够将df的索引设置为范围的情况下,4列中的数据变为NaN,因为它们没有与新索引匹配的数据。我道歉,如果这是初步的,但我在蟒蛇/大熊猫的世界已经一周了,没有编程+ 10年,并花了2天时间试图把这个想象为自己作为一个练习,但它的时间哭......叔叔!!
答案 0 :(得分:4)
首先尝试将250:0索引作为列引入,然后将它们设置为索引:
df = pd.DataFrame({'col1': list('abcdefghij'), 'col2': range(0, 50, 5)})
df['new_index'] = range(30, 20, -1)
df.set_index('new_index')
在:
col1 col2 new_index
0 a 0 30
1 b 5 29
2 c 10 28
3 d 15 27
4 e 20 26
5 f 25 25
6 g 30 24
7 h 35 23
8 i 40 22
9 j 45 21
后:
col1 col2
new_index
30 a 0
29 b 5
28 c 10
27 d 15
26 e 20
25 f 25
24 g 30
23 h 35
22 i 40
21 j 45
答案 1 :(得分:4)
你可以做到
df.index = range(250, 0, -1)
或者我错过了什么?