我想在此数据帧上进行的计算很简单,但我仍然没有想到任何初步的代码。列“ 10”中的数据已排序(升序)。
我想: 1.列'10'* 1.05中的第一行(加5%) 例如:871103 * 1.05 = 914658.15(df中最接近的值为914657) 2.计算行数以查找更接近结果的数据 在1。 例如:下方df中的第16行。 3.汇总“ 2”列中的相同行数。 例如:下方df中为0.04242
数据帧示例:
2 10
1
asks: 0.1546 871103
0.011 871280
0.004 871315
0.01 871333
0.004 871341
0.0106 871347
0.01 871347
0.023 871363
0.002 871365
0.01 871401
0.001 871462
0.139 871477
0.005 871483
0.005 871499
0.03 871502
0.005 914657
0.01119222 914800
0.50000013 920000
输出:
2 10
1
asks: 0.4242 914657
答案 0 :(得分:1)
假设df
是您的数据帧:
idx = (df['10'] - (df['10'][0] * 1.05)).abs().idxmin()
csdf = df.cumsum()
csdf['10'] = df['10']
idx
是您要查找的行的索引:从第'10'
列的每个值与第{{1列的第一个值之间的差的绝对值的最小值}}乘以1.05。
'10'
是通过对csdf
的元素进行累加而获得的新数据帧,然后用原始的df
列替换了'10'
的{{1}}列csdf
。
所以
'10'
是您要查找的行。