我有一个DataFrame,其中的数据格式如下:
name,type
P1,["prod_1", "prod_3"]
P2,["prod_2", "prod_3"]
P3,None
我正在尝试将其转换为以下输出:
name,type
P1,"prod_1", "prod_3"
P2,"prod_2", "prod_3"
P3,None
df['type']
的数据类型是对象
我尝试使用正则表达式,如下所示:
df['type'] = df['type'].replace("[", df['type'])
df['type'] = df['type'].replace("]", df['type'])
但这仍然返回与括号前后相同的输出
答案 0 :(得分:3)
使用此
df['type']=df['type'].str.replace('\[|\]','')
O / P:
name type
0 P1 'prod_1', 'prod_3'
1 P2 'prod_2', 'prod_3'
2 P3 None
文档:https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.Series.str.replace.html
str.replace
接收到正则表达式作为替换模式,|
在这里用作or
和\
转义字符,用于区别于正则表达式
正如@乔恩·克莱门茨(Jon Clements)所说,strip
将是解决此问题的最佳选择。
df['type'] = df['type'].str.strip('[]')