我想将数据框中的数据分成两列,并使用这些数据构建新列。
我的数据框是,
dfc = pd.DataFrame( {"A": ["GT:DP:RO:QR:AO:QA:GL", "GT:DP:RO:QR:AO:QA:GL", "GT:DP:RO:QR:AO:QA:GL", "GT:DP:GL", "GT:DP:GL"], "B": ["0/1:71:43:1363:28:806:-71.1191,0,-121.278", "0/1:71:43:1363:28:806:-71.1191,0,-121.278", "0/1:71:43:1363:28:806:-71.1191,0,-121.278", "1/1:49:-103.754,0,-3.51307", "1/1:49:-103.754,0,-3.51307"]} )
我想要名为 GT、DP、RO、QR、AO、QA、GL
的各个列,其值来自列 B
我们可以使用 a = df.A.str.split(":", expand = True)
和 b = df.B.str.split(":", expand = True)
得到两个单独的数据框。这些可以与 c = pd.merge(a, b, left_index = True, right_index = True)
合并以获得所有需要的数据。但是,不是预期的格式。
有什么建议吗?我认为更好的方法是在 A
和 B
两列上使用 split
然后创建一个包含值的 dict
列A
作为键,B
作为值。然后可以将此列转换为数据框。
谢谢
最佳答案
使用 OrderedDict
在创建数据帧的两个相关列的 dict
映射后保留顺序 :
",扁平化为一个列表
。
稍后将其提供给数据框构造函数。
from collections import OrderedDict
L = dfc.apply(
lambda x: OrderedDict(zip(x['A'].split(':'), x['B'].split(':'))), 1).tolist()
pd.DataFrame(L)
关于python - 拆分,将数据映射到 Pandas 数据框中的两列中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41375297/