gpt4 book ai didi

python - 拆分以逗号分隔的多列值

转载 作者:太空宇宙 更新时间:2023-11-03 23:58:14 25 4
gpt4 key购买 nike

我有以下数据集

Chr     Position       Name      AD                                 
1 866511 A 13,21
1 881627 A 28,33
2 1599812 B 67,25

我需要将 AD 列拆分为三列 [REF, ALT1, ALT2]。当 AD 的每一行只有两个值时,我仍然需要用 NaN 值填充 ALT2 列。

如果 AD 包含具有三个值的行,则以下代码有效

df['REF'], df['ALT1'], df['ALT2'] = df['AD'].str.split(',', 2).str

但是,在某些情况下,对于每一行,数据集在 AD 列中仅包含两个值,当我运行同一行时,我收到以下错误消息:

ValueError:没有足够的值来解压(预期 3,得到 2)

在这种情况下,我仍然希望第三列 ALT2 并用 NaN 值填充它。有什么建议吗?谢谢任何愿意提供帮助的人。

最佳答案

添加一个额外的','

df['REF'], df['ALT1'], df['ALT2'] = zip(*df.AD.add(',').str.split(',').str[:3])

df

Chr Position Name AD REF ALT1 ALT2
0 1 866511 A 13,21 13 21
1 1 881627 A 28,33,31 28 33 31
2 2 1599812 B 67,25 67 25

或者不改变df

df.assign(**dict(zip('REF ALT1 ALT2'.split(), zip(*df.AD.add(',').str.split(',').str[:3]))))

Chr Position Name AD REF ALT1 ALT2
0 1 866511 A 13,21 13 21
1 1 881627 A 28,33,31 28 33 31
2 2 1599812 B 67,25 67 25

关于python - 拆分以逗号分隔的多列值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56758262/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com