为了在文本文件中绘制100,000到500,000个数据点,我使用以下代码。 问题是:
如果我将数据点复制并粘贴到绘图软件中,到达绘图只需30秒,但使用以下代码可能需要1小时或更长时间才能通过Python进行绘图。
import pandas as pd
import numpy as np
import json
import itertools
import usaddress
def address_func(address):
try:
return usaddress.tag(address)
except:
return [{'AddressConverstion':'Error'}]
# import file
file = pd.read_excel('addresses.xlsx')
# apply function
file['tag_response'] = file['Full Address'].apply(address_func)
# copy values to new column
file['tags'] = file.apply(lambda row: row['tag_response'][0], axis=1)
# dump json
tags_combined = json.dumps(list(file['tags']))
# create dataframe of parsed info
df_parsed = pd.io.json.json_normalize(json.loads(tags_combined))
# merge dataframes on index
merged = file.join(df_parsed)
有什么问题?我该怎么解决? 感谢您的帮助。
答案 0 :(得分:1)
一些一般规则:
numpy
,而不是math
在这里,您想要创建一个包含所有点数的艺术家,而不是每个艺术家创造一个点的500000名艺术家。
import numpy as np
import matplotlib.pyplot as plt
cmin=502.8571071527562
c,O=np.genfromtxt('textfile.txt',unpack=True)
q=np.exp(-0.5*(c-cmin))
plt.plot(O, q, 'bo')
plt.show()