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。(“\\”)
定义数据时,还需要“\\”