python - 如何将整列作为参数传递给 tldextract 函数?
问题描述
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)
这是输入数据:
数据框看起来像这样 我无法将数据直接放在这里。所以,我发布一个快照。
解决方案
使用 apply 和 apply 函数到列中的每个元素,并将保持所有内容整齐排列。
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)
输出:
url Domain
0 https://google.com google
1 https://google.com google
2 https://google.com google
3 https://google.com google
4 https://google.com google
5 https://google.com google
6 https://google.com google
7 https://google.com google
8 https://google.com google
9 https://google.com google
10 https://google.com google
11 https://google.com google
推荐阅读
- javascript - 重新加载 IFrame 的源,Iframe 从单击的链接更改源
- php - 为什么我在 Laravel 中使用 PostController 时得到未定义的变量?
- javascript - 为什么即使我在其中推送值,空数组仍然是空的?
- angular - 带有垂直垫选项卡组的角度 CDK 拖放
- python - scrapy spider 不需要aws secret 来访问s3?
- xml - 根据复杂条件从 XML 中删除元素
- react-native - the experimental syntax 'decorators-legacy is not supported and shows an error when i try to use mobx tools on my react app
- javascript - appendChild 的问题
- 并让图像匹配
- 元素
- ruby-on-rails - 无法检索活动的 ActionCable 频道
- java - 可以将 java 切线转换为双精度