将字符串从一列提取到新列 – Pandas

Extract string from one column to new column – Pandas

我有一列需要提取和分离所有类型,然后将这些提取类型添加回数据框。我尝试实施 str.extract() 方法,但没有成功。

列示例:

|title||genres|
|-----||------|
|Cowboy Bebop||['Comedy', 'Dementia', 'Horror', 'Seinen']|

理想的新专栏:

|title||genres|
|-----||------|
|Cowboy Bebop||'Comedy'|
|CowBoy Bebop||'Dementia'|
|CowBoy Bebop||'Horror'|
|CowBoy Bebop||'Seinen'|

这将为您提供所需的结果 .explode()

data = {'title' : ['Cowboy Bebop'], 'genres' : [['Comedy', 'Dementia', 'Horror', 'Seinen']]} 
df = pd.DataFrame(data)
df = df.explode('genres')
df

你需要pandas.DataFrame.explode:

df = df.explode('genres').reset_index(drop=True)

输出:

>>> df
          title    genres
0  Cowboy Bebop    Comedy
1  Cowboy Bebop  Dementia
2  Cowboy Bebop    Horror
3  Cowboy Bebop    Seinen

请注意,您可能需要将 genres 列中的值转换为实际列表,因为它可能看起来像一个列表,但实际上是一个字符串。如果是这样,运行 在上面之前:

import ast
df['genres'] = df['genres'].apply(ast.literal_eval)