删除数据框中特定列中的部分值,并返回一个 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
我将以下数据框命名为: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