Pythonic方法对Pandas数据帧中的每个列的值执行urljoin操作(Python 3.4)

时间:2015-11-06 14:43:01

标签: python-3.x pandas

我有Pandas数据框,其中一列是" url"包含相对URL路径。此列中的值需要附加要转换为绝对URL的基本URL。

我确信循环遍历列的每一行并不是最好的方法。我可以通过使用Lambdas操作来完成此操作。然而lambdas对我来说似乎有点神奇,我对它不太满意。

你能推荐一种更好的方法吗?感谢。

    from urllib.parse import urljoin
    import pandas as pd
    .
    base_url = "http://www.website.com"
    .
    my_df["relatie_url"] = my_df["relatie_url"].map(lambda x : urljoin(base_url, x))

1 个答案:

答案 0 :(得分:1)

您可以做的IIUC:

my_df["relatie_url"] = base_url + my_df["relatie_url"]

这比调用map

要快得多

示例:

In [12]:
df = pd.DataFrame({'site':['/home/index.html', '/images/src']})
df

Out[12]:
               site
0  /home/index.html
1       /images/src

In [13]:
base_url = "http://www.website.com"
df['site'] = base_url + df['site']
df

Out[13]:
                                     site
0  http://www.website.com/home/index.html
1       http://www.website.com/images/src