在使用Float64Index时,如何移动数据帧的索引?

2024-06-16 11:02:10 发布

您现在位置:Python中文网/ 问答频道 /正文

正如问题所提到的,我有一个pandas(v0.18.0)数据帧,它由几列1D数据(模拟光谱)组成。在

示例数据集如下所示:

Photon Energy (eV),  Spin_Up (a.u.),  Spin_Down (a.u.),       Difference  
1.520040,                  0.000000,           0.00000,         0.000000   
1.520515,                  0.000000,           0.00000,         0.000000   
1.520990,                  0.000000,           0.00000,         0.000000   
1.521465,                  9.742188,           0.00000,         9.742188   
1.521940,                 35.432140,          24.41665,        11.015490   
1.522415,                 69.708160,          99.48898,       -29.780820   
1.522890,                140.897400,         198.71710,       -57.819700   
1.523365,                369.593200,         401.61710,       -32.023900   
1.523840,               1688.481000,        1034.93300,       653.548000   
1.524315,               1822.535000,        4645.04600,     -2822.511000   
1.524790,               1284.102000,        5457.34800,     -4173.246000   

数据直接从CSV(pd.read_csv('sample.csv', index_col='Photon Energy (eV)'))导入,三个导入的列是一个索引行(具有六个十进制精度的光子能量)和两个电子总体(整数值)。在

现在,我想将索引列移动大约2.5meV(相当于200行)。在

我用以下方法得出了最大值:

^{pr2}$

然后尝试使用df.shift(periods=shift_amt)进行移位(我意识到shift_amt上的int()是不必要的,只是试图覆盖所有的基础)。这似乎没有效果(索引列被取消移动)。尝试对shift()函数内的freq应用一个值没有任何区别。当我使用df.index.shift()尝试相同的操作时,我得到了一个错误NotImplementedError: Not supported for type Float64Index。我假设这意味着我所要做的是不可能的,我应该回到使用一个简单的整数索引列。但是,在我放弃之前,我想知道我在这个过程中是否遗漏了什么。在


Tags: csv数据示例pandasdfindexshift光谱