如何在django中显示csv文件的行?

use*_*511 5 django pandas django-tables2

我有一个django应用程序,它允许用户上传一个csv文件,比如大学排名的csv文件.我必须处理已上传的数据.例如,灰显任何具有字符串值的列并计算平均值和标准值.列的所有值的偏差.为此,我使用Pandas并将csv文件转换为pandas数据帧.

如何使用django显示csv文件中的数据集?列名称不能进行硬编码,因为用户可能会上传任何csv文件.我检查了django-tables2并做了以下事情

csvfile = request.FILES['csv_file']
data = pd.read_csv(csvfile.name)
context = {'loaded_data': data}
return render(request, "dataflow/table.html", context)
Run Code Online (Sandbox Code Playgroud)

但我得到了错误 ValueError: Expected table or queryset, not DataFrame

小智 9

Pandas数据帧可以单独转换为html表.你可以试试

csvfile = request.FILES['csv_file']
data = pd.read_csv(csvfile.name)
data_html = data.to_html()
context = {'loaded_data': data_html}
return render(request, "dataflow/table.html", context)
Run Code Online (Sandbox Code Playgroud)

在html页面中,用于{{loaded_data | safe}}呈现表格.