本文介绍了删除数据框的括号中的内容的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我试图使用以下代码删除数据框中所有列的括号内的所有内容。但是我无法确定正确地做到这一点。任何帮助都非常感谢
I am trying to remove all the contents inside parenthesis of all the columns in a data frame using the following code. But I can't figure out to do it correctly. Any help is highly appreciated
def clean_text(data):
if data.find('(')!=-1:
st=data[data.find("(") + 1:data.find(")")])
data.replace(st,'') # cant use this
return data.lower()
no_dup_cols = no_dup.columns.values
for col in no_dup_cols:
no_dup[col] = no_dup[col].apply(clean_text)
推荐答案
a href =http://pandas.pydata.org/pandas-docs/stable/generated/pandas.Series.str.replace.html =nofollow> 替换
:
Solution with loop columns and replace
:
import pandas as pd
data = pd.DataFrame({'A':['(1)','2','3'],
'B':['(B) 77','s gg','d'],
'C':['s','(d) 44','f']})
print (data)
A B C
0 (1) (B) 77 s
1 2 s gg (d) 44
2 3 d f
for col in data:
data[col] = data[col].str.replace(r'\(.*\)', '')
print (data)
A B C
0 77 s
1 2 s gg 44
2 3 d f
列表理解的解决方案和:
Solution with list comprehension and concat
:
data = pd.concat([data[col].str.replace(r'\(.*\)', '') for col in data], axis=1)
print (data)
A B C
0 77 s
1 2 s gg 44
2 3 d f
这篇关于删除数据框的括号中的内容的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!