<分区>
我想将整行(索引和值)从最后一行移动到 DataFrame 的第一行。我能找到的每个其他示例都使用 ordered row index (具体来说 - 我的 row
索引不是一个数字序列 - 所以我不能简单地添加 -1 然后用 +1 重新索引)或 moves the values while maintaining the original index .我的 DF 具有作为索引的描述,并且值对于索引描述是离散的。
我要添加一行,然后想将它移到第 1 行。这是设置:
df = pd.DataFrame({
'col1' : ['A', 'A', 'B', 'F', 'D', 'C'],
'col2' : [2, 1, 9, 8, 7, 4],
'col3': [0, 1, 9, 4, 2, 3],
}).set_index('col1')
#output
In [7]: df
Out[7]:
col2 col3
col1
A 2 0
A 1 1
B 9 9
F 8 4
D 7 2
C 4 3
然后我按如下方式添加一个新行:
df.loc["Deferred Description"] = pd.Series([''])
In [9]: df
Out[9]:
col2 col3
col1
A 2.0 0.0
A 1.0 1.0
B 9.0 9.0
F 8.0 4.0
D 7.0 2.0
C 4.0 3.0
Deferred Description NaN NaN
我希望结果输出为:
In [9]: df
Out[9]:
col2 col3
col1
Defenses Description NaN NaN
A 2.0 0.0
A 1.0 1.0
B 9.0 9.0
F 8.0 4.0
D 7.0 2.0
C 4.0 3.0
我试过使用 df.shift()
但只有值发生变化。我也尝试过 df.sort_index()
但这需要对索引进行排序(有几个 SO 示例使用 df.loc[-1] = ...
然后使用 df.index = df.index + 1
重新索引)。在我的例子中,我需要将 Defenses Description
作为第一行。