【发布时间】:2018-05-08 14:49:22
【问题描述】:
这里是新人,这是我的第一个问题,我希望将来我可以通过回答其他人的问题来回报。
我有两个 pandas 数据框 A 和 B,每个都包含 float64 值,它们都具有相同的尺寸和相同的索引和列 float64 数字条目。例如
A
0.5 1.0 1.5 2.0
-1.947417e-15 0.015178 0.045640 0.074928 0.100943
-5.000000e-01 0.047697 0.149200 0.256133 0.359234
-1.000000e+00 0.082972 0.272634 0.494826 0.733841
-1.500000e+00 0.120121 0.417265 0.811659 1.303373
-2.000000e+00 0.155978 0.572880 1.206698 2.159998
B
0.5 1.0 1.5 2.0
-1.947417e-15 0.003859 0.018968 0.042486 0.070368
-5.000000e-01 0.003859 0.036093 0.100487 0.187447
-1.000000e+00 -0.007340 0.018968 0.107873 0.254083
-1.500000e+00 -0.029713 -0.038906 0.042486 0.178620
-2.000000e+00 -0.059926 -0.134084 -0.091504 0.032577
我希望能够在 A 中的每个数据列中查找一个固定值(例如 0.25),返回每列的(线性)插值索引值(但仅当该值存在于列数据的范围内时值 - 所以不是 A) 中的第 0.5 列。数据框 A 的列数据将始终单调递增。
一旦我获得了数据帧 A 中每一列的插值索引值,例如 0.25,然后我想检索数据帧 B 中具有相同“坐标”的值,即插值索引和等效列价值。
例如,在 A 中查找 0.25,然后对于列 1.5 将在 0 和 -0.5 之间插入索引,该值接近但大于值 -0.5。从 B 返回的值将是在 B 中查找第 1.5 列的索引,因此返回介于 0.042486 和 0.100487 之间的某个值,接近但小于 0.100487 值。我想在 A 中返回这些“0.25”坐标值,并在 B 中的每一列中查找和插入等效值。
有点混乱,有意义吗?
我做了很多搜索,可以找到一些pandas dataframe插值方法,但一般都是在填充NaN的上下文中。
非常感谢您的帮助,因此提前感谢您阅读和思考此问题。也许这是一个简单的解决方案,但我无法想到它或在任何地方在线找到它。
【问题讨论】:
-
Nick Holden 在这里解决了第二部分,非常好,tku。 [stackoverflow.com/questions/10464738/…第一部分是通过数据帧A(例如z = 0.25)为行z = some_value获取一组插值索引和列值
-
我没有正确链接到 Nick Holden 的部分解决方案,[stackoverflow.com/a/30733959/8195971]
-
我已经解决了这个问题,等我整理一下再发布我的解决方案。
标签: python pandas dataframe interpolation