如何将Jupyter Notebook单元格完整输出写入CSV文件(无省略号)
解决Jupyter Notebook导出完整数据到CSV避免省略号的问题
嘿,这个问题我之前也碰到过!原因是当你用str(x)把pandas Series转成字符串时,pandas默认会为了界面显示美观,截断过长的输出内容,所以才会出现省略号。别担心,有两种办法解决,其中第一种是最优选择:
方法1:使用pandas自带的to_csv方法(强烈推荐)
这是最专业、最稳妥的方式,pandas的to_csv方法专门用于导出数据到CSV格式,它会完整输出所有数据,不会受显示限制截断,还能自动处理CSV的格式规范。
替换你原来的代码为:
# 先完成分组和排序逻辑 group = df.groupby(['id','no_of_absents']).size().groupby(level=0).size() x = group.sort_values(ascending=False, kind='quicksort') # 直接用to_csv导出到文件 x.to_csv("output.csv", header=False)
- 加上
header=False是因为你的输出里没有列名,如果需要列名,可以把参数改成header=['count']之类的自定义名称。
方法2:取消pandas的显示限制后转字符串(不推荐,仅作参考)
如果你一定要用open文件的方式写入,那需要先取消pandas对显示行数的限制,再用to_string()方法转换(而不是直接用str(x)):
import pandas as pd # 取消pandas的显示行数限制 pd.options.display.max_rows = None with open("output.csv","w")as output: group = df.groupby(['id','no_of_absents']).size().groupby(level=0).size() x = group.sort_values(ascending=False, kind='quicksort') # 用to_string()替代str(x) output.write(x.to_string())
⚠️ 注意:这种方法的输出是空格分隔的文本,严格来说不符合CSV的逗号分隔规范,而且当数据量很大时(比如25000条),效率不如to_csv高,所以优先选第一种方法。
内容的提问来源于stack exchange,提问作者Krush23
相关产品推荐
相关产品推荐

