我寻求帮助,以优化功能。循环尽管大熊猫据帧列,排序,并返回前N个结果
数据为例(user_id是数据帧指数):
df =
user_id 670334 670336 670337 670338 670339
670334 1.000000 0.995996 0.975368 0.995816 NaN
670336 0.995996 1.000000 0.990686 0.999739 NaN
670337 0.975368 0.990686 1.000000 0.990595 NaN
670338 0.995816 0.999739 0.990595 1.000000 NaN
我期待独立承担每一列,排序,上去下来,然后返回200强user_ids的列表。以下是我到目前为止,但我的矩阵超过8K x 8K数据点。
#example function
def temp(df, N, column_head):
#Saves only the info about the user
xx = df[column_head]
#Sorts descending removing NaN's
data = xx.dropna().sort_values(ascending=False)
#Returns user at hand and list of top 200 ids
return column_head, list(data.index[1:N+1])
然后我使用列表理解
[temp(df, 200, x) for x in list(df.columns)]
是否有更好的方法来做到这一点?它完成了这项工作,但我觉得有一种更加pythonic的方式来做到这一点。
预先感谢您。
Beatuiful ..!谢谢 – user2938093