需要从 Pandas Dataframe 中的一列中删除几个字符
Need to delete a couple of characters from one column in Pandas Dataframe
我尝试了各种方法来删除 Call ,[,]和 D 列中的 '。我缺少什么?
我试过:
.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()
@RobK 以下内容使用单行代码来替换您想要替换的任何字符。您在上面的一次尝试中非常接近通过 regex=True 和 转义字符 与 \ 并使用或分隔符与 |。您需要记住使用 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 你说你的代码没有改变任何东西。我的猜测是您在创建编写器对象后放置了脚本的替换部分。它在下面为我工作。我创建了自己的数据框来代替您代码中漂亮的汤部分,并且效果很好。我也会附上截图:
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()
我尝试了各种方法来删除 Call ,[,]和 D 列中的 '。我缺少什么?
我试过:
.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()
@RobK 以下内容使用单行代码来替换您想要替换的任何字符。您在上面的一次尝试中非常接近通过 regex=True 和 转义字符 与 \ 并使用或分隔符与 |。您需要记住使用 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 你说你的代码没有改变任何东西。我的猜测是您在创建编写器对象后放置了脚本的替换部分。它在下面为我工作。我创建了自己的数据框来代替您代码中漂亮的汤部分,并且效果很好。我也会附上截图:
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()