J'ai cette trame de données suivante (df):
mut gene pvalue chrom
1:23456_A>G 0.005 chr1
2:28484_A>G 0.0001 chr2
4:47629_A>G 0.05 chr4
3:88382_A>G 0.00001 chr3
10:88273_A>G 0.005 chr10
[30 rows x 4 columns]
J'essaie de créer quatre colonnes avec leurs étiquettes de nom de colonne à partir de la colonne "mut" de df et je les ai affectées dans df_new nouvellement créé qui ressemble à ceci
chr st ref alt
1 23456 A G
2 28484 A G
4 47629 A G
La trame de données résultante (df_new) est essentiellement une extraction de la colonne mut de df et ensuite une séparation de chaque partie de la chaîne, c'est-à-dire: split (":") puis split ("_") et enfin split (">") où nous nous retrouvons avec 4 parties du champ d'origine 1 23456 AG, puis placées dans leurs colonnes.
Voici ma tentative:
df_new["chr"], df_new["st"], df_new["ref"],
df_new["alt"] = df.mut.str.split("[:_>]")
mais je me retrouve avec un message d'erreur comme suit:
ValueError: too many values to unpack (expected 4)
une simple instruction print révèle le résultat de cette ligne de code:
df.mut.str.split("[:_>]")
comme:
0 [1, 23456, A, G]
1 [2, 28484, A, G]
.
.
.
Existe-t-il un moyen de résoudre ce problème dans les pandas où vous créez une nouvelle trame de données à partir de la séparation des champs de chaîne en 4 colonnes avec leurs étiquettes de colonnes incluses?
Essayons .str.split(expand=True)
df2=df.mut.str.split('[:_>]',expand=True)
df2.columns=['chr','st','ref','alt']
chr st ref alt
0 1 23456 A G
1 2 28484 A G
2 4 47629 A G
3 3 88382 A G
4 10 88273 A G
Este artículo se recopila de Internet, indique la fuente cuando se vuelva a imprimir.
En caso de infracción, por favor [email protected] Eliminar
Déjame decir algunas palabras