Vai*_*ehi 5 python dataframe python-3.x pandas
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)
Run Code Online (Sandbox Code Playgroud)
输出:谷歌
我想要的是在名为“Domain”的数据框中创建一个新列,其中包含从 URL 中提取的域名。
就像是:
df['Domain'] = tldextract.extract(df['url'])
Run Code Online (Sandbox Code Playgroud)
但这不起作用
这是代码:
# 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)
Run Code Online (Sandbox Code Playgroud)
这是输入数据:
数据框看起来像这样 我无法将数据直接放在这里。所以,我发布一个快照。
使用 apply 将函数应用于列中的每个元素,并使所有内容整齐排列。
df['Domain'] = df['url'].apply(lambda url: tldextract.extract(url).domain)
Run Code Online (Sandbox Code Playgroud)
这是我用于测试的完整代码:
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)
Run Code Online (Sandbox Code Playgroud)
输出:
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
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1422 次 |
| 最近记录: |