gpt4 book ai didi

python - 将 Pandas 数据框转换为 json 很慢

转载 作者:行者123 更新时间:2023-12-04 16:07:30 26 4
gpt4 key购买 nike

将一个 csv(50k 行)转换为 json 以供 Django 模板最终使用非常慢。我想知道我是否正确地转换了它,或者是否有更好的方法来做到这一点。

csv 的前几行是:

tdate,lat,long,entity
3/6/2017,34.152568,-118.347831,x1
6/3/2015,34.069787,-118.384738,y1
1/1/2011,34.21377,-118.227904,x1
3/4/2013,33.81761,-118.070374,y1

正在 View 中读取此 csv 并以这种方式呈现请求:

def index(request):     
df = pd.read_csv('app/static/data.csv')
df.tdate=pd.to_datetime(df.tdate)
df['Qrt'] = df.tdate.dt.quarter
df['Yr'] = df.tdate.dt.year
jzon=df.groupby('entity')[['lat','long','Qrt','Yr']].apply(lambda x: x.to_dict('records')).to_json(orient='columns')
return render(request, 'app/index.html', {'jzon': jzon})

{"x1":[{"lat":34.152568,"long":-118.347831,"Qrt":1.0,"Yr":2017.0},{"lat":34.21377,"long":-118.227904,"Qrt":1.0,"Yr":2011.0}],"y1":[{"lat":34.069787,"long":-118.384738,"Qrt":2.0,"Yr":2015.0},{"lat":33.81761,"long":-118.070374,"Qrt":1.0,"Yr":2013.0}]}

最佳答案

做某事最快的方法通常是避免这样做,所以也许您可以将生成的 json 保存到 data.json 中。文件在您的 app/static 目录中,将您当前的代码移动到您作为部署过程的一部分执行的自定义管理命令。

自定义管理命令是 python 脚本,可以使用 ./manage.py <yourcommandname> ... 从命令行执行。 .这记录在这里:https://docs.djangoproject.com/en/2.0/howto/custom-management-commands/

在这种情况下,您是命令的 handle方法将负责将 csv 转换为 json(使用当前在您 View 中的代码)并将其存储到 data.json文件在您的 app/static 文件夹中。那么你的观点只需要 json.load()这个data.json归档并送达。

然后您所要做的就是确保在您更新 csv 文件时调用此命令。如果您没有部署脚本(只是不要忘记在您的部署过程文档中记录它),则可以手动完成此操作,或者在您的部署脚本中自动完成以确保您不会有陈旧数据。

关于python - 将 Pandas 数据框转换为 json 很慢,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48115308/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com