python – 将DataFrame的整数索引和生成的SciPy矩阵视为同一个坏
发布时间:2020-12-20 13:07:19 所属栏目:Python 来源:网络整理
导读:我有一个管道,它接受一个pandas DataFrame,df,有几个文本列,将它们连接成一个文档,并对文档进行矢量化,产生一个scipy.sparse.csr_matrix,让我们称之为X. 稍后我使用X行(对应于我原始DataFrame的行)进行最近邻查询,当我想要显示一个向量的最近邻居的文本名称
我有一个管道,它接受一个pandas DataFrame,df,有几个文本列,将它们连接成一个文档,并对文档进行矢量化,产生一个scipy.sparse.csr_matrix,让我们称之为X.
稍后我使用X行(对应于我原始DataFrame的行)进行最近邻查询,当我想要显示一个向量的最近邻居的文本名称时,我在X中使用向量的整数位置这个: >>> print "Nearest neighbor's name is",df.iloc[position_in_x,:]['my_name'] 这是一个不好的举动,或者只要我没有在DataFrame中添加或删除,DataFrame中的整数位置是否可以被视为静态? 我想知道其他人是如何处理的.我遇到的一个解决方案是将X的行向量作为df中的新列. 谢谢! 解决方法
在这种情况下我不确定iloc,但如果你想要更严格 – 你可以随时使用
selection by label和loc属性.即使您更改了行的排序,也可以在添加新行之后使用它. Loc按索引选择行(不是像iloc这样的整数位),在默认情况下,它只是numpy矩阵中的行索引.
In [132]: df1 Out[132]: x y events 0 5 20 2 7 22 4 9 24 In [133]: df2 Out[133]: x y events 1 6 21 3 8 23 In [134]: df3 = df1.append(df2) In [135]: df3 Out[135]: x y events 0 5 20 2 7 22 4 9 24 1 6 21 3 8 23 In [137]: df3.loc[3,:] Out[137]: x 8 y 23 events Name: 3,dtype: object Also related (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |