我尝试了各种方法,仅从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
@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
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。