python - 使用给定集合中随机分配的值向 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。处理它的正确方法是什么?
解决方案
您可以尝试使用迭代电影的列表理解:
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
推荐阅读
- r - 在ggplot2中绘制具有离散轴的矩形和线条范围
- java - 如何在 android 中使用 SharedPreferences 从 PhotoView id/image id 中获取价值
- python - 如何以 Pythonic 方式为每个不同的输入设置规则?
- haskell - 使用 foldr 定义地图(开发)
- openwhisk - 如何使用 Serverless + OpenWhisk 和 IBM Cloud API Gateway 返回非 200 HTTP 状态代码?
- python - Pygame 混音器通过新的音频接口改变播放速度
- java - 泽西岛 - java.lang.ClassNotFoundException: org.glassfish.jersey.servlet.ServletContainer
- rust - 使活塞窗口透明
- ruby - GetStream:以下提要不返回提要的项目
- templates - 新的 ASP.Net Core Web 应用程序屏幕 Visual Studio 2017 中没有 ASP.Net Core 模板