加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Python > 正文

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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读