熊猫-在DF href中添加一列

时间:2018-08-06 06:16:56

标签: python python-3.x pandas web-scraping beautifulsoup

我正在处理webscrape脚本。生成的熊猫数据框很棒,但是我需要添加一个unique_id列,其值包含在HTML中的href URL值。

test = pd.DataFrame({'Col1': [12, 57], 'Col2': [':402:agshhhjd,:45:hghghgruru,:12:fghghgh,:22:hhhh', ':42:agshhhjd,:57:hghghgruru,:120:fghghgh,:12:hhhhhh']})

test


    Col1    Col2
0   12      :402:agshhhjd,:45:hghghgruru,:12:fghghgh,:22:hhhh
1   57      :42:agshhhjd,:57:hghghgruru,:120:fghghgh,:12:h...

def my_val(col1num, col2text):

    # Split columns by ':'
    col2_ls = col2text.split(':')[1:]

    # Create an empty dict to store key-value pairs
    my_dict = {}

    # Create your key-value pairs and update dict
    for i, j in zip(range(0, len(col2_ls), 2), range(1, len(col2_ls)+1, 2)):
        my_dict[col2_ls[i]] = col2_ls[j]

    # If the key exists return the value
    if str(col1num) in my_dict.keys():
        val = my_dict[str(col1num)]
        return val
    else:
        return 'Unavailable'

test['Col3'] = test.apply(lambda x: my_val(col1num=x['Col1'], col2text=x['Col2']), axis=1)

test

    Col1    Col2                                                Col3
0   12      :402:agshhhjd,:45:hghghgruru,:12:fghghgh,:22:hhhh   fghghgh,
1   57      :42:agshhhjd,:57:hghghgruru,:120:fghghgh,:12:h...   hghghgruru,

当前Pandas数据框中有一个包含“ ADDRESS CLIENT”的列,但是我如何添加一个包含href URL的单独列?

我目前可以使用以下命令获取用逗号分隔的unique_id值列表:

<td><a href="/admin/tasks/edit/82689"> ADDRESS </a> CLIENT </td>

任何方向将不胜感激!

1 个答案:

答案 0 :(得分:0)

正确的方法是使用pandas.DataFrame.assign方法

df.assign(url=unique_id)

这将在DataFrame中为您提供一个名为url的新列,并为numpy数组中的值赋值。据我所知,df['url] = unique_id之类的列分配已被弃用。您可以阅读更多 here