aBi*_*ist 2 series dataframe python-3.x pandas
我有以下数据框(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]
Run Code Online (Sandbox Code Playgroud)
我正在尝试从 df 的“mut”列中创建四列及其列名标签,并将其分配到新创建的 df_new 中,如下所示
chr st ref alt
1 23456 A G
2 28484 A G
4 47629 A G
Run Code Online (Sandbox Code Playgroud)
结果数据框 (df_new) 基本上是从 df 中提取列 mut 然后分离字符串的每个部分,即: split(":") 然后 split("_") 最后 split(">")我们最终得到原始字段 1 23456 AG 的 4 个部分,然后放入它们的列中。
这是我的尝试:
df_new["chr"], df_new["st"], df_new["ref"],
df_new["alt"] = df.mut.str.split("[:_>]")
Run Code Online (Sandbox Code Playgroud)
但我最终得到如下错误消息:
ValueError: too many values to unpack (expected 4)
Run Code Online (Sandbox Code Playgroud)
一个简单的打印语句显示了这行代码的结果:
df.mut.str.split("[:_>]")
Run Code Online (Sandbox Code Playgroud)
作为:
0 [1, 23456, A, G]
1 [2, 28484, A, G]
.
.
.
Run Code Online (Sandbox Code Playgroud)
有没有办法在 Pandas 中解决这个问题,您可以在其中创建一个新的数据框,将字符串字段分成 4 列,其中包含列标签?
咱们试试吧 .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
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
47 次 |
| 最近记录: |