更新:已经超过24小时了,代码还没有完成:)
我在下面有这个python代码.基本上,此代码目前仅使用1%的数据集(这就是它被称为样本的原因).它有32968行名称.我清理了标点符号并将其全部用小写字母表示.
我的问题是这段代码到目前为止已经运行了8个小时,还没有完成.因为,如上所述,我只使用1%的数据,我将需要稍后在整个数据集上再次运行此代码,这将花费100倍的时间.我不认为等待800小时是个好主意.所以对于我的问题:
有什么办法可以让它更快吗?应该了解spark或mapreduce,并尝试将这些用于此代码?
编辑:好的,我将尝试添加有关代码实际执行的更多信息.清理之前的名称示例:
import pandas as pd
import numpy as np
data = {'clean_name': ['Abbott Laboratories','Apple Computers', 'Apple, Inc.', 'Abercrombie & Fitch Co.', 'ABM Industries Incorporated', 'Ace Hardware Corporation'], 'name_group': np.zeros(6, dtype=int)}
sample = pd.DataFrame(data)
sample
Out[2]:
clean_name name_group
0 Abbott Laboratories 0
1 Apple Computers 0
2 Apple, Inc. 0
3 Abercrombie & Fitch Co. 0
4 ABM Industries Incorporated 0
5 Ace Hardware Corporation 0
Run Code Online (Sandbox Code Playgroud)
然后,我清理标点符号并将其全部用小写字母表示.基本上,我想将每个名称与下一个名称进行比较,如果相似,我会给它相同的组号.像这样的东西:
sample
Out[28]:
clean_name name_group
0 abbott laboratories …Run Code Online (Sandbox Code Playgroud) 这个问题的答案可能非常简单,但经过几个小时的搜索,我真的找不到它。
我正在尝试使用 Django 从 pandas 数据帧返回 JsonResponse。我尝试过的众多事情之一如下:
from django.http import JsonResponse
from django.views.decorators.csrf import csrf_exempt
import pandas as pd
@csrf_exempt
def do_request(request):
result = pd.DataFrame({'bla':[1,2,3],'bla2':['a','b','c']}).to_json(orient='records')
return JsonResponse(result, safe = False)
Run Code Online (Sandbox Code Playgroud)
以下最终返回:
"[{\"bla\":1,\"bla2\":\"a\"},{\"bla\":2,\"bla2\":\"b\"},{\"bla\":3,\"bla2\":\"c\"}]"
事实上我希望它返回:
'[{"bla":1,"bla2":"a"},{"bla":2,"bla2":"b"},{"bla":3,"bla2":"c"}]'
python ×2
bigdata ×1
data-science ×1
django ×1
jsonresponse ×1
pandas ×1
performance ×1
to-json ×1