删除数据框中特定列中的部分值,并返回一个 DF

Removing part of a value in a certain column in a dataframe , and returning a DF

我将以下数据框命名为:mydf:

        A                  B
0       3de (1ABS)      Adiran
1       3SA (SDAS)      Adel
2       7A (ASA)        Ronni
3       820 (SAAa)      Emili

我想删除“(xxxx)”并将值保留在 A 列中,因此数据框 (mydf) 将如下所示:

        A          B
0       3de      Adiran
1       3SA      Adel
2       7A       Ronni
3       820      Emili

我试过了:

print mydf['A'].apply(lambda x: re.sub(r" \(.+\)", "", x) )

但后来我得到了一个 Series 对象而不是数据框对象。

我也尝试过使用替换:

df.replace([' \(.*\)'],[""], regex=True),但是并没有改变什么。

我做错了什么?

谢谢!

你可以使用str.split()方法:

In [3]: df.A = df.A.str.split('\s+\(').str[0]

In [4]: df
Out[4]:
     A                   B
0  3de              Adiran
1  3SA                Adel
2   7A               Ronni
3  820               Emili

或使用str.extract()方法:

In [9]: df.A = df.A.str.extract(r'([^\(\s]*)', expand=False)

In [10]: df
Out[10]:
     A                   B
0  3de              Adiran
1  3SA                Adel
2   7A               Ronni
3  820               Emili