首页 > 解决方案 > 使用给定集合中随机分配的值向 pandas.DataFrame 添加一列

问题描述

我有一个像这样的数据集:

df["movie"] 
A
B
C
D

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

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

这样我的df样子:</p>

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

我试过了:

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

但它只会从列表中分配一个值,如 all 'action's 或 all 'comedy's。处理它的正确方法是什么?

标签: pythonpandas

解决方案


您可以尝试使用迭代电影的列表理解:

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

推荐阅读