Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/19.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何更快地使用pandas数据帧计算字符串相似性_Python_Python 3.x_Pandas_Dataframe_Similarity - Fatal编程技术网

Python 如何更快地使用pandas数据帧计算字符串相似性

Python 如何更快地使用pandas数据帧计算字符串相似性,python,python-3.x,pandas,dataframe,similarity,Python,Python 3.x,Pandas,Dataframe,Similarity,我有两只熊猫dataframes,我想计算dataframes中的字符串相似性。这是我的代码,但我遇到的一个大问题是我的数据太多,我的代码花费了太多的时间(可能需要7天)。有什么方法可以让我的代码更快 import pandas as pd import re import difflib df_post=pd.read_csv('ptt_run.csv',encoding='utf8',header=0) df_post=df_post.fillna('null') df_yahoo=pd.

我有两只熊猫
dataframes
,我想计算
dataframes
中的字符串相似性。这是我的代码,但我遇到的一个大问题是我的数据太多,我的代码花费了太多的时间(可能需要7天)。有什么方法可以让我的代码更快

import pandas as pd
import re
import difflib

df_post=pd.read_csv('ptt_run.csv',encoding='utf8',header=0)
df_post=df_post.fillna('null')
df_yahoo=pd.read_csv('yahoo_movie_20180519_test.csv',encoding='utf8',header=0)
df_yahoo=df_yahoo.fillna('null')

for i in range(0,len(df_yahoo)):
    df_post[df_yahoo['yahoo_movie_id'][i]]=0

    for j in range(0,len(df_post)):
        df_post.loc[j, df_yahoo['yahoo_movie_id'][i]]=difflib.SequenceMatcher(None, df_yahoo['yahoo_ch_nosign'][i], df_post['title_nosign'][j]).ratio()

df_post.to_csv('df_score_test.csv', encoding='utf8',index=False)
我的
len(df_yahoo)=6000
len(df_post)=130000

我想知道df_yahoo['yahoo_Chu nosign'][0]与df_post['title_nosign'][0~13000]的相似性与df_yahoo['yahoo_Chu nosign'][6000]与df_post['title_nosign'][0~13000]的相似性

为循环执行此操作花费了太多的时间,但我不知道如何改进我的问题。

基本上像您这样手动循环是不利用内置pandas/numpy方法的最慢的方法

这篇文章很好地澄清了这一问题: