python - 更改数据框索引值,同时保持其他列数据相同

标签 python pandas

我有一个包含 4 列和 251 行的 DataFrame 以及一个由数字组成的索引,例如1000 到 1250。该索引最初是必要的,以帮助连接来自 4 个不同数据帧的数据。但是,一旦我将 4 列放在一起,我想将索引更改为从 250 到 0 的数字级数。这是因为我将对不同的数据集(4 组)执行相同的操作不同的指数,例如2000 到 2250 或 500 到 750,但都具有相同的行数。 250 到 0 是统一这些数据集的一种方式,但我不知道该怎么做。即我正在寻找用函数 range(250, 0, -1) 替换任何现有索引的东西

我已经尝试使用下面的 set_index 和一大堆总是返回错误的其他尝试,

df.set_index(range(250, 0, -1), inplace=True) 

并且在我能够将 df 的索引设置为范围的实例中,4 列中的数据更改为 NaN,因为它们没有与新索引匹配的数据。如果这是最基本的,我深表歉意,但我在 python/pandas 的世界里已经一周了,没有编程超过 10 年,并且花了 2 天的时间来尝试自己解决这个问题,但现在是时候了哭……叔叔!!

最佳答案

尝试先将 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

关于python - 更改数据框索引值,同时保持其他列数据相同,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18371609/

相关文章:

python - 从数据框中排除行,除非满足另一个列条件

python - pandas 数据框列中数据的字符串格式

python - 让 pandas 打印完整的字符串

python - 由于德语变音,Python 中的字符串不相等

python - 如何在tornado中通过Motor中的ObjectId进行查询

python - Python中基于FFT的二维卷积和相关性

python - Pandas 系列的小时值到系列的日期

python - 需要黑白棋游戏说明

python - Boto 语法错误?

python - 多列pandas向量化字符串函数?