2024-09-22 16:23:31 发布
网友
我有一个熊猫数据框,如下所示。我根据RefIDPrefix列中的唯一值创建了最后3列
RefIDPrefix
我想像下面这样填写最后3列。基本上,基于RefIDPrefix中的值,我想获取RefIDNumber中的值,并将其放入对应于RefIDPrefix的正确列中
RefIDNumber
我已经试着这么做了一段时间,但还没有弄明白如何去做。任何帮助都将不胜感激
您可以使用^{}从RefIDPrefix和^{}将列构建回原始df
df
df.join(df.pivot(columns='RefIDPrefix', values='RefIDNumber').fillna(''))
输出:
RefIDPrefix RefIDNumber GO PMID Reactome 0 GO 12345 12345.0 1 PMID 23456 23456.0 2 Reactome 34567 34567.0 3 GO 45678 45678.0 4 GO 56789 56789.0 5 PMID 67890 67890.0
对于新列中数字的显示格式(当前显示为带小数点的float数字),如果RefIDNumber列实际上是字符串,则新列中的数字也将是字符串,并且没有小数点(如整数)
float
但是,如果RefIDNumber是数字格式(ID号很可能是正数),我们可以通过微调^{}部分将数字保留为integer,如下所示:
integer
df.join(df.pivot(columns='RefIDPrefix', values='RefIDNumber').fillna(-1, downcast='infer').replace(-1, ''))
RefIDPrefix RefIDNumber GO PMID Reactome 0 GO 12345 12345 1 PMID 23456 23456 2 Reactome 34567 34567 3 GO 45678 45678 4 GO 56789 56789 5 PMID 67890 67890
您可以使用^{} 从} 将列构建回原始
RefIDPrefix
和^{df
输出:
编辑
对于新列中数字的显示格式(当前显示为带小数点的
float
数字),如果RefIDNumber
列实际上是字符串,则新列中的数字也将是字符串,并且没有小数点(如整数)但是,如果} 部分将数字保留为
RefIDNumber
是数字格式(ID号很可能是正数),我们可以通过微调^{integer
,如下所示:输出:
相关问题 更多 >
编程相关推荐