我在数据框中的索引(有 30 行)的形式是:
Int64Index([171, 174,173, 172, 199..............
....175, 200])
索引没有严格增加,因为数据框是 sort() 的输出。我想添加一个系列的列:
[1, 2, 3, 4, 5......................., 30]
我该怎么做呢?
怎么样:
df['new_col'] = range(1, len(df) + 1)
或者,如果您希望索引成为排名并将原始索引存储为列:
df = df.reset_index()
我在尝试做同样的事情时偶然发现了这个问题(我认为)。这是我的做法:
df['index_col'] = df.index
然后,您可以根据需要对新的索引列进行排序。
这个怎么样:
from pandas import *
idx = Int64Index([171, 174, 173])
df = DataFrame(index = idx, data =([1,2,3]))
print df
它给了我:
0
171 1
174 2
173 3
这是你想要的?
这样做的方法是:
重置索引:
df.reset_index(drop=True, inplace=True)
对索引进行排序:
df.sort_index(inplace=True)
从列设置新索引:
df.set_index('column_name', inplace=True)
从范围设置新索引:
df.index = range(1, 31, 1) #a range starting at one ending at 30 with a stepsize of 1.
根据列值对数据框进行排序:
df.sort_values(by='column_name', inplace=True)
重新分配变量也有效:
df=df.reset_index(drop=True)
df=df.sort_index()
df=df.set_index('column_name')
df.index = range(1, 31, 1) #a range starting at one ending at 30 with a stepsize of 1.
df=df.sort_values(by='column_name')