本文介绍了删除数据框的括号中的内容的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我试图使用以下代码删除数据框中所有列的括号内的所有内容。但是我无法确定正确地做到这一点。任何帮助都非常感谢

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

这篇关于删除数据框的括号中的内容的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

10-21 03:35