【发布时间】:2020-12-16 20:01:44
【问题描述】:
我有以下数据框(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]
我正在尝试从 df 的“mut”列创建四列及其列名标签,并将其分配给新创建的 df_new,如下所示
chr st ref alt
1 23456 A G
2 28484 A G
4 47629 A G
生成的数据框(df_new)基本上是从 df 中提取 mut 列,然后分离字符串的每个部分,即:split(":") 然后 split("_") 最后 split(">") 我们最终得到原始字段 1 23456 A G 的 4 个部分,然后放入它们的列中。
这是我的尝试:
df_new["chr"], df_new["st"], df_new["ref"],
df_new["alt"] = df.mut.str.split("[:_>]")
但我最终得到如下错误消息:
ValueError: too many values to unpack (expected 4)
一个简单的打印语句揭示了这行代码的结果:
df.mut.str.split("[:_>]")
作为:
0 [1, 23456, A, G]
1 [2, 28484, A, G]
.
.
.
有没有办法在 pandas 中解决这个问题,您可以在其中创建一个新的数据框,将字符串字段分成 4 列并包含它们的列标签?
【问题讨论】:
标签: python-3.x pandas dataframe series