使用解析列表值创建DataFrame上的列

2024-09-27 02:26:16 发布

您现在位置:Python中文网/ 问答频道 /正文

我有这样一个数据帧:

OMDB_AWARDS OMDB_GENRE
1 Oscar     |Drama| 
2 Emmy      |Sci-Fi|Comedy|
1 Emmy      |Comedy|

如何动态创建如下所示的新列

OMDB_AWARDS OMDB_GENRE    OMDB_GENRE_DRAMA    OMDB_GENRE_Comedy    OMDB_GENRE_Sci-Fi    
1 Oscar     |Drama|                    1                    0            0
2 Emmy      |Sci-Fi|Comedy|            0                    1            1  
1 Emmy      |Comedy|                   0                    1            0

我可以用这种方式解析唯一值

genre = pd.Series(df.OMDB_GENRE.ravel()).unique()

但是,仍然存在动态列和适当值的问题


Tags: 数据方式fipd动态创建scioscaromdb
1条回答
网友
1楼 · 发布于 2024-09-27 02:26:16

一个非常简单的方法是:

df['OMDB_GENRE_DRAMA'] = df.OMDB_GENRE.apply(lambda x: 1 if 'Drama' in x else 0)

对所有类型重复。如果你有很多流派,你可以把这些流派的名字列出来,然后做如下的事情:

genres = ['Drama', 'Comedy', ..]
for genre in genres:
    df['OMDB_GENRE_{}'.format(genre)] = df.OMDB_GENRE.apply(lambda x: 1 if genre in x else 0)

相关问题 更多 >

    热门问题