Python 用反斜杠分隔列值

Python 用反斜杠分隔列值,python,pandas,Python,Pandas,我有这样一个数据帧: data = {'id': [1,1,1,2,2], 'value': ['red','red\blue','yellow','oak','oak\wood'] } df = pd.DataFrame (data, columns = ['id','value']) 我想要的是: id value count 1 red 2 1 blue 1 1 yellow 1 2 oak 2 2 wood 1 如果是其他分

我有这样一个数据帧:

data = {'id': [1,1,1,2,2],
        'value': ['red','red\blue','yellow','oak','oak\wood']
}
df = pd.DataFrame (data, columns = ['id','value'])
我想要的是:

id value   count
1  red     2
1  blue    1
1  yellow  1
2  oak     2
2  wood    1
如果是其他分隔符,如
/
我可以做:

df1 = (df.assign(value = df['value'].str.split(';|/'))
         .explode('value')
         .groupby(['id','value'], sort=False)
         .size()
         .reset_index(name='count'))
但是当它是反斜杠
\
时,它就不起作用了


我该怎么办?

您可以替换值中的所有非字母数字字符,然后进行拆分

df1 = (df.assign(value = df['value'].replace({r'\W': ' '}, regex=True).str.split())
     .explode('value')
     .groupby(['id','value'], sort=False)
     .size()
     .reset_index(name='count'))

注意:如果值拆分不需要其他符号,则此操作将失败。

将其转义为`\\`或使用原始字符串?尝试:
.split。(“\\”)
定义
数据时,还需要
“\\”