我有一个看起来像这样的数据:
我写了一个如下脚本:
data['website']=data['Website address'].str.split('www.').str[1]
data['website']=data['website'].str.split('.com').str[0]
这基本上是首先删除“ www”,然后第二个代码旨在从字符串中删除“ .com”。 我应该为第一个和第二个数据点得到的结果应该是:
但是我得到的却是“ r”。因此,我认为Python无法解释“。”。作为点,但“ com”之前的任何字符。
我想知道如何删除诸如“ .ru”,“。com”,“。it”等短语。请提供帮助。
答案 0 :(得分:2)
import re
def get_domain(s):
return re.sub("^www\.(.+)\.[^\.]+$", "\\1", s)
print(get_domain("www.r-computer.com")) # r-computer
(未试)
返回站点名称和.com .org等。如果不匹配,则不返回
import re
def get_domain(s):
ret = re.findall("^www\.(.+)\.([^\.]+)$", s)
return ret[0] if ret else (None, None)
# example
a, b = get_domain("www.italy.it")
if a and b:
print(a) # italy
print(b) # it
答案 1 :(得分:0)
对于提供的示例,这将起作用:
import pandas as pd
import os
from openpyxl import load_workbook
from openpyxl import Workbook
path = "mypath"
directory = os.listdir(f'{path}')
files = [f for f in directory if f[-4:] == 'xlsx']
combined = Workbook()
ws = combined.active
for item in files:
wb = load_workbook(filename = f'{path}/{item}')
sheet = wb.sheetnames
data = pd.read_excel(f'{path}/{item}',sheet_name=f'{sheet[0]}')
data.to_excel(f'{path}/combined.xlsx',sheet_name=f'{sheet[0]}',header=None,index=None)
这是在第一个data['website']=data['website'].split('.')[1]
和第二个{{1}