向pandas.DataFrame添加一列,其中包含给定集合中随机分配的值

2024-09-29 23:33:00 发布

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

我有这样一个数据集:

df["movie"] 
A
B
C
D

如何使用给定列表中随机分配的值添加另一列[“流派”]

genres = ["action", "drama", "comedy"]

所以我的df看起来像:

movies genre
  A    action
  B    drama
  C    drama
  D    comedy
    ...

我试过:

def addGenreColumn():
   for line in data:
       data["genre"] = random.choice(['action', 'comedy', 'drama'])
addGenreColumn()

但是它将只从列表中分配一个值,就像所有'action'或所有'comedy'一样。正确的处理方法是什么


Tags: 数据df列表fordatadefactionmovies
2条回答

您可以尝试在电影中使用列表:

import random
import pandas as pd

data = pd.DataFrame({'movie':['A','B','C','D']})

def addGenre():
    data["genre"] = [random.choice(['action', 'comedy', 'drama']) for movie in data.movie]
    
addGenre()

print(data)

输出:

  movie   genre
0     A   drama
1     B  action
2     C  comedy
3     D  action

您可以使用numpy.random.choice如:

data["genre"] = numpy.random.choice(genres, data["movie"].shape)

这将从genres列表中生成形状作为第一列,以便将其分配给新列

相关问题 更多 >

    热门问题