如何从.txt文件的特定列创建Pandas数据帧?

2024-04-25 22:50:46 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一些特定格式的文本文件。文本文件的每一列都分配给特定的信息。没有任何真正的分隔符,有时整个列集合都被填满了,因此并不总是有空白。例如

1 ALA X   4 80.8 40.6
2 VAL X 234 90.1 42.7
3 VAL X1143 95.2 47.8
...
34ALANX3324100.2345.8

第1-2列专用于从1到99的直接计数。第3-6列专用于识别标签。第7列是一个修饰符标记。第8-11列是一个数字,表示另一个序列中的值。实际含义并不重要,我只是解释一下,以帮助您弄清楚这个.txt文件是怎么回事。在

在本例中,我对第1-2列(值为0-99)和第8-11列(值为0-9999)感兴趣。这些值有时可能返回NaN或字母。我需要从.txt文件中获取这些列,并将它们放入一个有两列的pandas数据框中。不得不添加我自己的分隔符似乎很讨厌。有没有一种方法可以告诉pandas使用这些文本文件列中的几个来创建一个dataframe列?在

我在Linux上使用python3.6,pandas v0.23.4。在

编辑:为了澄清,当提到.txt文件的列时,我的意思是指水平移动时光标的位置。所以任何行的第一个字符在列1中,任何行的第二个字符是列2,任何行的第十三个字符是列13,等等。当我提到pandas时,我指的是pandas数据帧中如何使用这个词的上下文中的实际列。很抱歉有任何可能的混淆。在


Tags: 文件数据txt信息pandas格式val字符
2条回答

我发现这似乎是最容易理解的。在

for filename in glob.glob('*.pdb'):    
newfile = open((filename[:5])+".txt","a+")   
newfile.write('Residue_ID')
temporaryfile = open(filename, 'r')        
for line in temporaryfile: 

    if "CA" in line:                      
        newfile.write(line[23:26])         

    else:                                  
        pass

然后使用

^{pr2}$

创建包含一列的数据帧。我现在只是在处理数据帧,把它们加在一起。在

在我看来,你文件中的数据是固定宽度的列。有了这个假设,我修改了你的档案,让熊猫能接受,就像这样。在

 1 ALA X   4 80.8 40.6
 2 VAL X 234 90.1 42.7
 3 VAL X1143 95.2 47.8
34ALAN X3324100.2345.8

然后你可以用这种方法来阅读第一列和第四列。在

^{pr2}$

(完成此操作后,可以删除不需要的列。)

相关问题 更多 >