Python-拆分制表符分隔的文件并转换为数据帧

Python-拆分制表符分隔的文件并转换为数据帧,python,list,Python,List,这是我从文件中复制和粘贴的行: UNBILL REC 18041667.97 55851351.64 0.00 0.00 0.00 -57467160.72 33.28 -1615775.80 16425892.17 我相信是以制表符分隔的,我正在使用以下代码: with open('file.txt','r') as file_handle: example_file_c

这是我从文件中复制和粘贴的行:

UNBILL REC        18041667.97    55851351.64           0.00          0.00           0.00   -57467160.72          33.28     -1615775.80    16425892.17
我相信是以制表符分隔的,我正在使用以下代码:

with open('file.txt','r') as file_handle:
    example_file_content = file_handle.read().split("\n")
alignmentMatrix = []
for index, line in enumerate(example_file_content):
    if "UNBILL REC" in line:
        print(re.split(r'\t+',line.lstrip()))
        alignmentMatrix.append(re.split(r'\t+',line.lstrip())) 
alignmentDF = pd.DataFrame(alignmentMatrix)
问题是,这给了我一个如下列表:

['UNBILL REC         4166047.25     3498767.15           0.00          0.00           0.00    -3058993.54           0.00       439773.61     4605820.86']
当转换为数据帧时,所有值都放在一列中,而不是每列一个值

我的预期产出是:

['UNBILL REC','4166047.25','3498767.15','0.00','0.00','0.00','-3058993.54','0.00','439773.61','4605820.86']

您可以将
alignmentMatrix[0]
re.split()
分配给数据帧:

re.split('\s{2,}',alignmentMatrix[0])

为什么不像读取csv一样读取文件?然后转置它

df = pandas.read_csv("file.txt", sep="\t")
df_tr = df.transpose()

您的预期输出是什么?您能提供一个示例输入和预期输出吗?听起来您不确定输入是以制表符分隔的,并且您的帖子中的输出有空格,而不是制表符(假设您逐字复制粘贴)。我复制并粘贴了文件中的行,并发布了我的输出以及预期输出应该是什么。希望这会有所帮助。是的,而且您复制的数据(假设它没有以任何方式转换)没有任何选项卡,它有空格。因此,您实际上应该在空格上进行拆分以实现此功能(但请记住,
UNBILL REC
也有一个内部空格)!不幸的是,该文件有许多不同的形状,当我尝试上述方法时,即使在阅读特定行时,输出看起来也与解决方案相去甚远。很高兴您的问题得到了解决:)