【发布时间】:2018-08-10 18:07:17
【问题描述】:
我有一个包含多个(超过 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 填充空白,这样它看起来像:
file1.txt
IDs AABC ABC6 YHG.8 D78Ha
Ellie 12 NA 48.70 33
Kate 98 34 21 76.36
Joe 22 53 49 NA
Van 77 NA 40 12.1
Xavier NA NA NA 88.85
然后,我尝试将 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)
如何用 NA 填充空白并在此数组中迭代而不通过一一写入来调用名称?也许随着[i,i] 中的i 增加?
【问题讨论】: