在熊猫数据框中串联多个字符串列

时间:2020-08-19 17:40:09

标签: python pandas

我正在尝试连接一个数据框的4个列,每个列都有一个需要连接在一起的值列表:

工作代码如下:

def create_soup(x):
    return ' '.join(x['keywords']) + ' ' + ' '.join(x['cast']) + ' ' + x['director'] + ' ' + ' '.join(x['genres'])
df['soup'] = df.apply(create_soup, axis=1)

我对理解此代码的主要问题是df.apply函数在此处可处理一行数据,为什么我不能一次性使用完整的数据帧使用同一代码。

有没有方法可以直接执行此操作而不使用apply函数?

数据如下:

enter image description here

最后一行包含第一部电影的输出-演员+导演+关键字+流派

1 个答案:

答案 0 :(得分:0)

使用Series.str.join

df['soup'] = (df['keywords'].str.join(' ') + ' ' + 
              df['cast'].str.join(' ') + ' ' + 
              df['director'] + ' ' +
              df['genres'].str.join(' '))

类似:

df['soup'] = ((df['keywords'] + df['cast']).str.join(' ') + ' ' + 
               df['director'] + ' ' +
               df['genres'].str.join(' '))