Python 3.x 是否将列添加到由函数创建的数据帧?
有一个csv文件,其中包含以下URL:Python 3.x 是否将列添加到由函数创建的数据帧?,python-3.x,pandas,dataframe,Python 3.x,Pandas,Dataframe,有一个csv文件,其中包含以下URL: 1;https://www.one.de 2;https://www.two.de 3;https://www.three.de 4;https://www.four.de 5;https://www.five.de 然后我将其加载到一个数据帧df cols = ['nr','url'] df = pd.read_csv("listing.csv", sep=';', encoding = "utf8", dt
1;https://www.one.de
2;https://www.two.de
3;https://www.three.de
4;https://www.four.de
5;https://www.five.de
然后我将其加载到一个数据帧df
cols = ['nr','url']
df = pd.read_csv("listing.csv", sep=';', encoding = "utf8", dtype=str, names=cols)
然后我想添加另一个col‘domain_name’,对应于nr
def takedn(url):
m = urlsplit(url)
return m.netloc.split('.')[-2]
df['domain_name'] = takedn(df['url'].all())
print(df.head())
但所有nr都使用最后一个域名
Output:
nr url domain_name
0 1 https://www.one.de five
1 2 https://www.two.de five
2 3 https://www.three.de five
3 4 https://www.four.de five
4 5 https://www.five.de five
我试着学习矢量化。
它不会像我想的那样起作用。第一行域名应该是1,第二行是2,依此类推。要对元素进行操作,可以使用
apply()
def takedn(url):
m=URLSPILT(url)
返回m.netloc.split('.')[-2]
df['domain_name']=df['url']。应用(takedn)
要对元素进行操作,可以使用
apply()
def takedn(url):
m=URLSPILT(url)
返回m.netloc.split('.')[-2]
df['domain_name']=df['url']。应用(takedn)
我们在
tldextract
import tldextract
df['domain'] = df.url.map(lambda x : tldextract.extract(x).domain)
df
nr url domain_name domain
0 1 https://www.one.de five one
1 2 https://www.two.de five two
2 3 https://www.three.de five three
3 4 https://www.four.de five four
4 5 https://www.five.de five five
我们在
tldextract
import tldextract
df['domain'] = df.url.map(lambda x : tldextract.extract(x).domain)
df
nr url domain_name domain
0 1 https://www.one.de five one
1 2 https://www.two.de five two
2 3 https://www.three.de five three
3 4 https://www.four.de five four
4 5 https://www.five.de five five
谢谢,完美的回答。有关于矢量化的好教程或解释吗?只是为了理解。@orgen不知道矢量化是什么意思。但有一本书叫《教你如何使用熊猫来处理数据》。在这里找到了一个矢量化链接:@orgen,它似乎与熊猫无关。但是如果你主要想在熊猫身上应用函数。主要有三个功能
apply
、map
和applymap
。关于它们之间的区别,你可以参考。谢谢,完美的答案。有关于矢量化的好教程或解释吗?只是为了理解。@orgen不知道矢量化是什么意思。但有一本书叫《教你如何使用熊猫来处理数据》。在这里找到了一个矢量化链接:@orgen,它似乎与熊猫无关。但是如果你主要想在熊猫身上应用函数。主要有三个功能apply
、map
和applymap
。关于它们之间的区别,您可以参考。