我有一个大数据框作为输入,如下所示:
index type price
3000 C 300
3000 P 500
3500 C 300
3500 P 400
4500 P 100
我想得到相同指数但不同类型(C和p)的指数值,价格差异最小
现在我执行以下操作,但需要几秒钟:
k_c = np.unique(df.index[(df['type'] == 'C')])
k_p = np.unique(df.index[(df['type'] == 'P')])
common_k = np.intersect1d(k_c, k_p)
diff = [np.abs(df['price'][(df['type'] == 'C') & (df.index == k)].values[0] -
df['price'][(df['type'] == 'P') & (df.index == k)].values[0]) for k in common_k]
min_index = common_k[np.argmin(diff)]
有没有办法让这更快
在轴=1上尝试^{} +^{} ,然后^{} :
min_index
:*注意
pivot
只有在同一索引中没有重复的“C”或“p”值时才有效^{} 要按索引并排获取值,请执行以下操作:
^{} 要清除不同时具有两个值的行,请执行以下操作:
轴1上的^{}
^{} 以获取最后一列(其中差异累积)
^{} 获取每个元素的绝对数值
^{} 要获取最小值的索引:
您可以使用
groupby
进行检查相关问题 更多 >
编程相关推荐