Python使用pandas提取CSV列写入txt被截断如何显示全部行
问题原因
内容截断是pandas的默认显示规则导致的:当DataFrame的行数、列数超过预设的显示阈值时,对DataFrame做str()转换只会返回首尾部分内容的预览,中间用省略号替代,末尾还会附带行列数统计,并不是读入的数据有缺失,只是输出逻辑做了折叠。
解决方法
你可以根据自己需要的输出格式选对应方案:
方案1:直接导出列内容(推荐,代码最简、效率最高)
如果你只需要job_name列的所有值,不需要行号、列名、行列统计这类额外信息,直接用pandas自带的导出方法即可,不需要手动写文件:
import pandas as pd df = pd.read_csv("data.csv") # 导出单列为纯文本,不保留行索引、不保留列名 df["job_name"].to_csv("results.txt", index=False, header=False, encoding="utf-8")
如果你需要保留原输出里的行号前缀,和之前的格式完全对齐,可以用遍历写入的写法:
import pandas as pd df = pd.read_csv("data.csv") with open("results.txt", "w", encoding="utf-8") as f: for row_idx, job_name in df["job_name"].items(): f.write(f"{row_idx}\t{job_name}\n")
方案2:修改pandas显示配置,保留原输出格式
如果你就想保留str(df1)的完整输出格式,只是去掉省略号,可以在代码开头修改pandas的全局显示参数,取消行数限制:
import pandas as pd # 关闭行数显示限制,输出全部行 pd.set_option("display.max_rows", None) # 可选:关闭列内容长度限制,避免长文本被截断 pd.set_option("display.max_colwidth", None) df = pd.read_csv("data.csv") df1 = df[["job_name"]] with open("results.txt", "w", encoding="utf-8") as f: f.write(str(df1))
注意:写文件时建议用
with open()的上下文管理器写法,会自动完成文件关闭操作,避免文件句柄泄漏;手动指定encoding="utf-8"可以避免不同系统下打开文件出现乱码问题。
内容的提问来源于stack exchange,提问作者anita
相关产品推荐
相关产品推荐

