Pandas删除字符后的列中的所有字符串

Aon*_*ose 3 python replace object pandas

所以我有一个超过500行的数据集,其中一列的值如下所示:

DF:

         column1

 0    a{'...'}  
 1    b{'...'}
 2    c{'...'}  
 3    d{'...'}  
Run Code Online (Sandbox Code Playgroud)

我想删除内部和内部的所有内容{}.

我一直在寻找这个问题,熊猫一个数据帧中指定的字符后,删除部分字符串,并试图解决方案有,但我不断收到错误(而据我所知,StringIO现在是io.StringIO).

我试过了

df.column1 = df.column1.str.split('{')[0]
Run Code Online (Sandbox Code Playgroud)

但得到错误信息:KeyError: 0 并不真正理解这意味着什么

我也尝试过:

df.column1 = df.column1.str.split(pat='{')
Run Code Online (Sandbox Code Playgroud)

但这似乎只删除了'{'所以我留下了

      column1

 0    a'...'}   
 1    b'...'}
 2    c'...'}   
 3    d'...'}   
Run Code Online (Sandbox Code Playgroud)

此外,我不确定它是否重要,但列是一种object类型.任何人都可以告诉我我做错了什么以及如何解决问题???

WeN*_*Ben 5

你可以用 replace

df['column1'].str.replace(r"\{.*\}","")
Out[385]: 
0    a
1    b
2    c
3    d
Name: column1, dtype: object
Run Code Online (Sandbox Code Playgroud)


pau*_*ult 5

有点晚了(@Wen 的解决方案很棒),但您可以pandas.Series.str.split()在最初的尝试中使用as 。你已经很接近了——你只需要设置expand=True

df["column1"] = df["column1"].str.split("{", expand=True)[0]
#  column1
#0       a
#1       b
#2       c
#3       d
Run Code Online (Sandbox Code Playgroud)