从熊猫中的列中删除括号

时间:2019-06-10 10:30:58

标签: python pandas

我有一个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'])

但这仍然返回与括号前后相同的输出

1 个答案:

答案 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('[]')