我有一个 CSV 文件,其中一列包含一系列具有 0.1 步长间隔的实数。但是,缺少某些值。我已将数据加载到 Pandas DataFrame 并将此列设置为索引。由于浮点数的表示方式,我很难识别缺失的索引值。我想找到丢失的行并用np.nan.
例如,给定
A B
0.0 78.4 65.9
0.1 72.9 29.2
0.3 80.7 45.9
0.4 10.9 82.3
0.5 37.7 85.4
0.6 90.4 69.9
0.7 17.0 57.2
0.8 70.0 49.6
1.0 58.6 65.1
Run Code Online (Sandbox Code Playgroud)
我想得到
A B
0.0 78.4 65.9
0.1 72.9 29.2
0.2 NaN NaN
0.3 80.7 45.9
0.4 10.9 82.3
0.5 37.7 85.4
0.6 90.4 69.9
0.7 17.0 57.2
0.8 70.0 49.6
0.9 NaN NaN
1.0 58.6 65.1
Run Code Online (Sandbox Code Playgroud)
我试过使用pandas.DataFrame.reindex,但由于浮点表示它不起作用。以下是我迄今为止尝试过的(我的数据范围更大):
A B
0.0 78.4 65.9
0.1 72.9 29.2
0.3 80.7 45.9
0.4 10.9 82.3
0.5 37.7 85.4
0.6 90.4 69.9
0.7 17.0 57.2
0.8 70.0 49.6
1.0 58.6 65.1
Run Code Online (Sandbox Code Playgroud)
这输出
A B
0.0 78.4 65.9
0.1 72.9 29.2
0.2 NaN NaN
0.3 NaN NaN
0.4 10.9 82.3
0.5 37.7 85.4
0.6 NaN NaN
0.7 NaN NaN
0.8 70.0 49.6
0.9 NaN NaN
1.0 58.6 65.1
Run Code Online (Sandbox Code Playgroud)
由于 float 不能总是得到 100% 匹配的链接,我们可以通过tolerancewithreindex
out = df.reindex(np.arange(df.index.min(),df.index.max()+0.1,0.1),method='nearest',tolerance=0.01)
A B
0.0 78.4 65.9
0.1 72.9 29.2
0.2 NaN NaN
0.3 80.7 45.9
0.4 10.9 82.3
0.5 37.7 85.4
0.6 90.4 69.9
0.7 17.0 57.2
0.8 70.0 49.6
0.9 NaN NaN
1.0 58.6 65.1
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
67 次 |
| 最近记录: |