假设在--pandas--dataframe中有以下列:
x
1 589
2 354
3 692
4 474
5 739
6 731
7 259
8 723
9 497
10 48
注意:我已经将索引改为从1开始(参见测试数据)。你知道吗
我只想测试一下这个列中任何两个项目之间的差异是否小于10。 最终结果:两个元素的绝对差值不应小于10。你知道吗
目标:
x
1 589
2 354
3 692
4 474
5 749 #
6 731
7 259
8 713 #
9 497
10 48
或许可以通过以下方式实现:
for index, row in df.iterrows():
然而,到目前为止还没有成功。。。你知道吗
考虑到我希望执行元素级比较,我不期望分段速度。。。你知道吗
试验数据:
import pandas as pd
df = pd.DataFrame(index = range(1,stim_numb+1), columns= ['x'])
df['x'] = [589, 354, 692, 474, 739, 731, 259, 723, 497, 48]
一种解决方案可能是对列表排序,然后比较连续的项,每当差异太小时添加
10
,然后将列表排序回原始顺序(如果需要)。你知道吗结果是
[589, 354, 692, 474, 759, 741, 259, 723, 497, 48]
这是使用简单的Python列表;也许可以在Pandas或Numpy中更优雅地完成。你知道吗
相关问题 更多 >
编程相关推荐