开发者社区> 问答> 正文

需要从“Pandas”数据框中的一列中删除几个字符

我尝试了各种方法,仅从D列中删除了* Call [] '*。我该怎么办?

我试过了:

.str.replace

df.Required_no_Email.replace("\(", 'xxx', regex=True)

df.Required_no_Email.replace('\(|\)', '', regex=True)

df.Required_no_Email.str.strip('()')

还有很多其他的东西,但是我忘记了我尝试过的其他东西。

这是剧本

from bs4 import BeautifulSoup # BeautifulSoup is in bs4 package
import requests
import re
import ` pandas ` as pd


URL = 'https://reallyfrustrated.com'
content = requests.get(URL)

soup = BeautifulSoup(content.text, 'html.parser')


business = soup.find('title')
companys = business.get_text()


phones = soup.find_all(text=re.compile("Call (.\*"))



data = {'Required':[companys], 'Required_no_Email':[phones]}

df = pd.DataFrame(data, columns = ['Required','First', 'Last', 'Required_no_Email', 'Business Fax'])



writer = pd.ExcelWriter("ProspectUploadSheetRob.xlsx", engine='xlsxwriter')

df.to_excel(writer, sheet_name='Sheet1', index=False, startrow=4, header=3)

workbook  = writer.book
worksheet = writer.sheets['Sheet1']

header_format = workbook.add_format({
    'bold': False,
    'text_wrap': False,
    'valign': 'top',
    'fg_color': False,
    'border': False})


for col_num, value in enumerate(df.columns.values):
    worksheet.write(4, col_num, value, header_format)

df.Required_no_Email.str.strip('()')

writer.save()

问题来源:stackoverflow

展开
收起
is大龙 2020-03-25 00:23:38 757 0
1 条回答
写回答
取消 提交回答
  • @RobK下面的代码可以用一线式替换您要替换的任何字符。在上面的一种尝试中,您非常接近通过* regex = True 用\转义字符并在 | *中使用or分隔符。您需要记住使用df.Required_no_Email =设置更改。

    import ` pandas ` as pd
    df = pd.DataFrame({'Required' : ['CTC Landscaping'],
                       'Required_no_Email' : ['''['Call (123) 456-7890']''']})
    df.Required_no_Email = df.Required_no_Email.replace('\[|\]|\'|\(|\)', '', 
                                                        regex=True)
    df
    

    @RobK您说您的代码未更改任何内容。我的猜测是您在创建writer对象之后放置了脚本的替换部分。下面对我有用。我创建了自己的数据框来代替代码中漂亮的部分,并且效果很好。我还将附上屏幕截图:

    import ` pandas ` as pd
    df = pd.DataFrame({'Required' : ['CTC Landscaping'],
    'Required_no_Email' : ['''['Call (123) 456-7890']''']})
    df.Required_no_Email = df.Required_no_Email.replace('\[|\]|\'|\(|\)', '', 
                                                        regex=True)
    writer = pd.ExcelWriter("ProspectUploadSheetRob.xlsx", engine='xlsxwriter')
    
    
    df.to_excel(writer, sheet_name='Sheet1', index=False, startrow=4, header=3)
    
    workbook  = writer.book
    worksheet = writer.sheets['Sheet1']
    
    header_format = workbook.add_format({
        'bold': False,
        'text_wrap': False,
        'valign': 'top',
        'fg_color': False,
        'border': False})
    
    
    for col_num, value in enumerate(df.columns.values):
        worksheet.write(4, col_num, value, header_format)
    
    df.Required_no_Email.str.strip('()')
    
    writer.save()
    

    回答来源:stackoverflow

    2020-03-25 00:23:48
    赞同 展开评论 打赏
问答分类:
问答标签:
问答地址:
问答排行榜
最热
最新

相关电子书

更多
中文:即学即用的Pandas入门与时间序列分析 立即下载
即学即用的Pandas入门与时间序列分析 立即下载
低代码开发师(初级)实战教程 立即下载