gpt4 book ai didi

regex - 如何将列拆分为具有某些功能的多列?

转载 作者:行者123 更新时间:2023-12-04 09:36:49 25 4
gpt4 key购买 nike

我有一个这样的专栏

col1  
(0,0):19,(1,1):155
(0,0):13,(0,1):32,(1,1):34
(0,0):56,(1,0):43,(1,1):38
(0,0):67,(0,1):45,(1,0):98,(1,1):70
我想把它分成四列:
(0,0)    (0,1)    (1,0)    (1,1)  
19 0 0 155
13 32 0 34
56 0 43 38
67 45 98 70
我试过了 col.str.split(',\s*(?![^()]*\))',expand=True)但只能得到:
col1    col2    col3    col4  
(0,0):19 (1,1):155 NAN NAN
(0,0):13 (0,1):32 (1,1):34 NAN
(0,0):56 (1,0):43 (1,1):38 NAN
(0,0):67 (0,1):45 (1,0):98 (1,1):70
我想知道是否有办法得到我上面显示的内容?非常感谢!

最佳答案

您可以提取 (0,0) 后的数字, (0,1) , (1,0)(1,1)然后放下 col1柱子:

import pandas as pd
df = pd.DataFrame({'col1': ['(0,0):19,(1,1):155','(0,0):13,(0,1):32,(1,1):34','(0,0):56,(1,0):43,(1,1):38','(0,0):67,(0,1):45,(1,0):98,(1,1):70']})
df['(0,0)'] = df['col1'].str.extract(r'\(0,0\):(\d+)', expand=False).fillna(0)
df['(0,1)'] = df['col1'].str.extract(r'\(0,1\):(\d+)', expand=False).fillna(0)
df['(1,0)'] = df['col1'].str.extract(r'\(1,0\):(\d+)', expand=False).fillna(0)
df['(1,1)'] = df['col1'].str.extract(r'\(1,1\):(\d+)', expand=False).fillna(0)
df = df.drop(columns = ['col1'])
输出:
>>> df
(0,0) (0,1) (1,0) (1,1)
0 19 0 0 155
1 13 32 0 34
2 56 0 43 38
3 67 45 98 70

关于regex - 如何将列拆分为具有某些功能的多列?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62537838/

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