我有一个看起来像下面的数据帧。
Product URLs Company
0 shoes www.walmart.com/12va15a walmart
1 shoes www.costco.com/1apsd-dfasx costco
2 pants www.amazon.com/adsffa1 NaN
3 shirt www.Amazon.com/fas19axl Amazon
4 shoes www.walmart.com/ywsg141q NaN
我不确定 Pandas 是否可以在 URL 列中获取唯一变量并将其填充到公司列的 NaN 中。
我喜欢的数据帧如下所示
Product URLs Company
0 shoes www.walmart.com/12va15a walmart
1 shoes www.costco.com/1apsd-dfasx costco
2 pants www.amazon.com/adsffa1 amazon
3 shirt www.Amazon.com/fas19axl amazon
4 shoes www.walmart.com/ywsg141q walmart
编辑:我已经降低了所有URL,但我不确定如何提取亚马逊,好市多等关键字。
为第一和第二.
之间的值添加Series.str.extract
:
df.Company = df.URLs.str.lower().str.extract('.(.+).', expand=False)
print (df)
Product URLs Company
0 shoes www.walmart.com/12va15a walmart
1 shoes www.costco.com/1apsd-dfasx costco
2 pants www.amazon.com/adsffa1 amazon
3 shirt www.Amazon.com/fas19axl amazon
4 shoes www.walmart.com/ywsg141q walmart
如果只想替换缺失值,也使用Series.fillna
:
df.Company = df.Company.fillna(df.URLs.str.lower().str.extract('.(.+).', expand=False))
在处理之前lower
您的网址:
df.URLs = df.URLs.str.lower()