【发布时间】:2017-05-20 11:35:46
【问题描述】:
我有一个 pd DataFrame,通常采用这种格式:
1 2 3 4
0.1100 0.0000E+00 1.0000E+00 5.0000E+00
0.1323 7.7444E-05 8.7935E-01 1.0452E+00
0.1545 4.3548E-04 7.7209E-01 4.5432E-01
0.1768 1.2130E-03 6.7193E-01 2.6896E-01
0.1990 2.5349E-03 5.7904E-01 1.8439E-01
0.2213 4.5260E-03 4.9407E-01 1.3771E-01
我想做的是从列表中重新采样第 1 列(索引)值,例如:
indexList = numpy.linspace(0.11, 0.25, 8)
然后我需要从输入 DataFrame 线性插值第 2、3 和 4 列的值(我重新采样/重新索引的总是只有我的第 1 列) - 并且如果需要外推,作为最小值/最大值我的列表的值不一定在我现有的第 1 列(索引)中。然而,关键点是插值部分。我对 python 很陌生,但我正在考虑使用这样的方法:
- output_df = DataFrame.reindex(index=indexList) - 这将主要为我提供第 2-4 列的 NaN。
-
对于索引,output_df.iterrows() 中的行
“计算内插/外插值的函数 DataFrame 并将它们插入正确的行/列"
感觉我应该能够使用 .interpolate 功能,但我不知道如何使用。我不能直接使用它——这太不准确了,因为我在第 2-4 列中提到的重新索引后的大部分条目都是 NaN;插值应该在我的初始 DataFrame 的两个最接近的值内完成。有什么好的建议吗? (如果我的格式/意图不清楚,请告诉我...)
【问题讨论】:
标签: python pandas interpolation reindex