繁体   English   中英

如何更新熊猫数据框中的值

[英]How can I update the value in a pandas dataframe

我有一个熊猫DataFrame df ,它由三列组成:doc1,doc2,value

我在所有行中将值设置为0。 我想使用jaccard相似度函数更新值(假设已定义)。 我执行以下操作:

df['value'] = 0
for index, row in df.iterrows():
   sim = jaccardSim(row['doc1'], row['doc'])
   df.at[index, 'value'] = sim

不幸的是,它不起作用。 当我打印df ,我得到df['value']值为0。

我该如何解决?

你可以试试

df['value']=[jaccardSim(x, y) for x , y in zip(df['doc1'], df['doc'])]

您可以执行矢量化功能。 您应该修改jaccardSim以获取一行df或创建一个lambda包装函数

jaccardSim = lambda row: jaccardSim(row["doc1"], row["doc2"])
vect_jaccardSim = np.vectorize(jaccardSim)
df['value'] = vect_jaccardSim(df)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM