這是一個關于如何允許用戶在 Python 3 中將 Pandas 資料幀匯出為 CSV 格式的問題。
對于背景關系,我有一個view接受來自 jQuery 的 POST 請求的 Django,這樣當用戶單擊我網站上的按鈕時,它會觸發對該 Django 的 POST 請求view并執行一些過濾以生成 Pandas 資料幀。我希望用戶能夠最終匯出資料框,而不是匯出到我的個人本地機器/專案目錄中。
我在“下載”和“匯出”之間做出了鮮明的區分。通過該方法可以輕松完成下載,并且基本上將 CSV 檔案保存到我本地機器(或我的專案檔案夾,實際上是)pd.to_csv內的指定目錄中。問題是我想要的行為是“匯出”,我將其定義為用戶在單擊按鈕時能夠在其本地計算機上獲取資料幀。
我目前“匯出”的方式是將 Dataframe 轉換為 HTMLtable元素,將 HTML 作為 POST 請求的回應回傳給 jQuery,然后使用 vanilla JS 檢查table元素以在用戶端匯出資料,遵循類似于如何將 html 表格資料匯出為 .csv 檔案的協議?. 然而,問題是當資料框變得太大時,就不可能檢查關聯的table元素來生成 CSV 檔案。
任何將 Pandas 資料幀匯出為 CSV 的建議都值得贊賞 - 事實上,它可能是一個原始解決方案。
uj5u.com熱心網友回復:
在你的視圖函式中試試這個
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
uj5u.com熱心網友回復:
df.to_csv(diractory/file_name.csv')
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/441875.html
