如何将已呈表格形态的字符串转换为pandas dataframe?
空格分隔的表格类文本转换为Pandas DataFrame的方法
完全可以实现,这里提供两种常用的实现方案,适配你给出的这类多空格分隔的对齐表格文本:
- 方案1:使用
pd.read_csv()配合任意空白分隔符
这个方案适配大多数多空格分隔的文本场景,核心是设置sep='\s+'匹配任意数量的空格作为分隔符,参考代码如下:
import pandas as pd from io import StringIO # 待转换的表格字符串 table_str = '''ColA ColA_weights ColB ColB_weights 0 0.038671 1073 1.859599 1 1 20.39974 57362 10.59599 1 2 10.29974 5857 2.859599 1 3 5.040000 1288 33.39599 1 4 1.040000 1064 7.859599 1''' # 转换为DataFrame df = pd.read_csv(StringIO(table_str), sep='\s+')
转换完成后可直接调用print(df)验证结果,内容和原表格完全一致。
- 方案2:使用
pd.read_fwf()处理固定宽度格式文本
如果你的表格是严格对齐的固定宽度格式,用专门处理固定宽度文本的read_fwf方法容错性更高,不需要手动设置分隔符:
import pandas as pd from io import StringIO # 待转换的表格字符串 table_str = '''ColA ColA_weights ColB ColB_weights 0 0.038671 1073 1.859599 1 1 20.39974 57362 10.59599 1 2 10.29974 5857 2.859599 1 3 5.040000 1288 33.39599 1 4 1.040000 1064 7.859599 1''' df = pd.read_fwf(StringIO(table_str))
你可以根据自己的文本格式灵活选择对应的方案。
内容的提问来源于stack exchange,提问作者Jerzy
相关产品推荐
相关产品推荐

