繁体   English   中英

导出 Pandas Dataframe 为 CSV

[英]Exporting Pandas Dataframe as CSV

这是一个关于如何让用户在 Python 中导出 Pandas dataframe 到 CSV 格式的问题 3.

对于上下文,我有一个 Django view ,它接受来自 jQuery 的 POST 请求,这样当用户单击我网站上的按钮时,它会触发对该 Django view的 POST 请求并执行一些过滤以生成 Pandas dataframe。我想要用户能够在他们的终端导出 dataframe,而不是我个人的本地机器/项目目录。

我在“下载”和“导出”之间做了明确的区分。 下载可以通过pd.to_csv方法轻松完成,基本上将 CSV 文件保存到我本地机器(或者我的项目文件夹,实际上)的指定目录中。 问题是我想要的行为是“导出”,我将其定义为用户在单击按钮后能够在本地计算机上获取 dataframe。

我目前“导出”的方式是将 Dataframe 转换为 HTML table元素,返回 HTML 作为对 jQuery 的 POST 请求的响应,并使用 vanilla JS 检查table元素以在用户端导出数据,遵循类似于如何将 html 表数据导出为 .csv 文件的协议? . 然而,问题是当 dataframe 变得太大时,将无法检查关联的table元素以生成 CSV 文件。

任何将 Pandas dataframe 导出到 CSV 的建议都值得赞赏 - 事实上,它可能是一个原始解决方案。

df.to_csv(directory/file_name.csv')

在您看来试试这个 function

import csv
import pandas as pd

def get(request):
    response = HttpResponse(content_type='text/csv')
    response['Content-Disposition'] = 'attachment; filename="{filename}.csv"'.format(filename='myname')
    writer = csv.writer(response)
    df = pd.DataFrame([{"name": "haha", "age": 18}, {"name": "haha", "age": 18}])
    writer.writerow([column for column in df.columns])
    writer.writerows(df.values.tolist())
    return response
        

暂无
暂无

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

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