tldextract用于从URL中提取域名。此处,“ url”是数据框“ df”中的列名称之一。可以将“ url”的一个值作为参数传递。但是,我无法将整个列作为参数传递。 在此处传递的网址是“ https://www.google.com/search?source=hp&ei=7iE”
listed = tldextract.extract(df['url'][0])
dom_name = listed.domain
print(dom_name)
输出: 谷歌
我想要的是在名为“域”的数据框中创建一个新列,其中具有从URL中提取的域名。
类似的东西:
df['Domain'] = tldextract.extract(df['url'])
但这不起作用
代码如下:
# IMPORTING PANDAS
import pandas as pd
from IPython.display import display
import tldextract
# Read data sample
df = pd.read_csv("bookcsv.csv")
df['Domain'] = df['url'].apply(lambda url: tldextract.extract(url).domain)
以下是输入数据:
The dataframe looks like this 我无法将数据直接放在这里。所以,我要发布快照。
答案 0 :(得分:0)
使用apply with将功能应用于列中的每个元素,并将使所有内容整齐地排列。
module Radians
refine Math.singleton_class do
def radians(degrees)
degrees * Math::PI / 180
end
end
end
这是我用于测试的完整代码:
df['Domain'] = df['url'].apply(lambda url: tldextract.extract(url).domain)
输出:
import pandas as pd, tldextract
df = pd.DataFrame([{'url':'https://google.com'}]*12)
df['Domain'] = df['url'].apply(lambda url: tldextract.extract(url).domain)
print(df)