我正在努力获得前n列(在我的例子中为n=3),同时忽略了n。我的数据集:
import numpy as np
import pandas as pd
x = {'ID':['1','2','3','4','5'],
'productA':[0.47, 0.65, 0.48, 0.58, 0.67],
'productB':[0.65,0.47,0.55, np.NaN, np.NaN],
'productC':[0.78, np.NaN, np.NaN, np.NaN, np.NaN],
'productD':[np.NaN, np.NaN, 0.25, np.NaN, np.NaN],
'productE':[0.12, np.NaN, 0.47, 0.12, np.NaN]}
df = pd.DataFrame(x)
我期望的结果:
如您所见,如果n<;3,它应该保留n,但按其值排序。我尝试了np.argsort,但它没有忽略NAN,而是按照字母顺序对缺少的产品进行排序
我建议直接使用numpy
根据你的经验,你可能会觉得有点困惑和糊涂(我当然会)
尝试使用:
您可以使用^{} 和^{} 来过滤出} 就行了
NaN
。那么只要^{^{} over ^{} is just ^{} under the hood 并且速度可能较慢。但是您可以利用NumPy函数(矢量化)来获得一些效率
性能几乎提高了14倍
相关问题 更多 >
编程相关推荐