读取超大文本文件至Jupyter Notebook时无法拆分列的求助
解决方案
先确认文件的实际分隔符
有时候看起来像制表符的分隔,实际是多个连续空格。可以先读取前几行原始内容,查看真实的分隔方式:with open('41586_2022_4496_MOESM3_ESM.txt', 'r') as f: for _ in range(3): print(repr(f.readline()))输出里如果看到多个空格(比如
'1 331.581577 -1.512106 ...'),说明分隔符是任意数量的空白符。用正则匹配空白符拆分列
把sep参数改成\s+(匹配任意数量的空格/制表符),同时处理大文件可以用chunksize分批读取避免内存溢出:import pandas as pd # 解决大文件内存问题:分批读取 chunk_generator = pd.read_csv( '41586_2022_4496_MOESM3_ESM.txt', sep='\s+', skip_blank_lines=True, header=None, # 如果文件没有表头,添加这个参数 chunksize=10000 # 每批读1万行,可根据内存调整 ) # 先查看第一批数据的列拆分情况 first_chunk = next(chunk_generator) print(first_chunk.head())修复Jupyter的内容截断问题
你看到的...是pandas默认截断长内容导致的,设置全局显示选项就能看到完整数据:pd.set_option('display.max_columns', None) pd.set_option('display.max_colwidth', None)
内容的提问来源于stack exchange,提问作者OverflownOverflow
相关产品推荐
相关产品推荐

