gpt4 book ai didi

python - 将 int 分配给 pandas 列表列中的字符串

转载 作者:行者123 更新时间:2023-12-04 02:30:00 24 4
gpt4 key购买 nike

我有一个 Pandas 数据框,其中包含一个包含字符串列表的列。

>>> df.head()

genre
0 [Comedy, Supernatural, Romance]
1 [Comedy, Parody, Romance]
2 [Comedy]
3 [Comedy, Drama, Romance, Fantasy]
4 [Comedy, Drama, Romance]

我怎样才能为列表中的每个值分配一个在整个列中都相同的唯一 ID?

>>> df.head()

genre
0 [1, 2, 3]
1 [1, 4, 3]
2 [1]
3 [1, 5, 3, 6]
4 [1, 5, 3]

最佳答案

这里的复杂之处在于我们正在处理一列列表。我们可以通过首先分解行来稍微提高性能。然后使用factorize,返回原来的格式:

v = df['genre'].explode()
v[:] = pd.factorize(v)[0] + 1
df['genre2'] = v.groupby(level=0).agg(list)

df
genre genre2
0 [Comedy, Supernatural, Romance] [1, 2, 3]
1 [Comedy, Parody, Romance] [1, 4, 3]
2 [Comedy] [1]
3 [Comedy, Drama, Romance, Fantasy] [1, 5, 3, 6]
4 [Comedy, Drama, Romance] [1, 5, 3]

关于python - 将 int 分配给 pandas 列表列中的字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64850376/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com