我有一个包含多个(超过1000)列和行的文件,它们的名称不遵循任何模式。示例如下:
file1.txt
IDs AABC ABC6 YHG.8 D78Ha
Ellie 12 48.70 33
Kate 98 34 21 76.36
Joe 22 53 49
Van 77 40 12.1
Xavier 88.85
首先,我必须用NA填充空格,这样它看起来像:
^{2}$然后,我尝试将id和其他列的所有组合作为AABC, ABC6,YHG.8 and D78Ha
,例如:
Ellie , AABC --> 12
Ellie, ABC6 --> NA
Ellie, YHG.8 --> 48.70 ( without rounding )
Ellie, D78Ha --> 33
Kate,AABC --> 98
Kate, ABC6 --> 34
...
因此,所需的输出应该是20
行(4 columns x 5 IDs)
),如下所示:
output.txt
Ellie AABC 12
Ellie ABC6 NA
Ellie YHG.8 48.70
Ellie D78Ha 33
Kate AABC 98
Kate ABC6 34
..
为此,我用NA
手动填充空格,用pandas读取文件,并为IDs
建立索引。在
这样我就可以使用ID名称和其他列名来访问。在
但我不能重复它。 我的尝试是:
import pandas as pd
tablefile = pd.read_csv('file1.txt',sep='\t')
print(tablefile)
df2=tablefile.set_index("IDs")
print("Ellie AABC " , df2.loc["Ellie", "AABC" ])
print("Kate AABC " , df2.loc["Kate", "AABC" ])
print("Xavier AABC " , df2.loc["Xavier", "AABC" ])
它打印:
('Ellie AABC ', 12.0)
('Kate AABC ', 98.0)
('Xavier AABC ', nan)
我怎样才能用NAs填补空白并在这个数组中迭代,而不需要逐个地写名字呢?也许随着i
在[i,i]
中的增加?在
只需^{} 来重塑dataframe:
数据
熔化
^{pr2}$IIUC}
stack
带{相关问题 更多 >
编程相关推荐