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
也有一个内部空格)!不幸的是,该文件有许多不同的形状,当我尝试上述方法时,即使在阅读特定行时,输出看起来也与解决方案相去甚远。很高兴您的问题得到了解决:)