使用python

时间:2019-09-27 18:15:38

标签: python-3.x string pandas dataframe split

我有一个看起来像这样的数据:

  • www.r-computer.com
  • www.rscompass.com
  • www.italy.it 等等。

我写了一个如下脚本:

data['website']=data['Website address'].str.split('www.').str[1]
data['website']=data['website'].str.split('.com').str[0]

这基本上是首先删除“ www”,然后第二个代码旨在从字符串中删除“ .com”。 我应该为第一个和第二个数据点得到的结果应该是:

  • r-计算机
  • rscompass

但是我得到的却是“ r”。因此,我认为Python无法解释“。”。作为点,但“ com”之前的任何字符。

我想知道如何删除诸如“ .ru”,“。com”,“。it”等短语。请提供帮助。

2 个答案:

答案 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}