在带有随机字符串值的PANAS中插入新列
问题描述
我有一个DataFrame
A B C
0 1 2 3
1 2 3 3
2 3 2 1
我需要在 pandas DataFrame中创建一个新列,其中‘yes’或‘no’随机填充此列。
A B C NEW
0 1 2 3 yes
1 2 3 3 no
2 3 2 1 no
使用随机选项会导致每一行都有相同结果的列
A B C NEW
0 1 2 3 no
1 2 3 3 no
2 3 2 1 no
我尝试了map、Apply和Applymap,但有一种更简单的方法。
解决方案
必须将新列设置为pd.Series,然后使用随机选项:
import random
df['NEW'] = pd.Series(random.choices(['yes','no'], weights=[1, 1], k=len(df), index=df.index)
随机选择将为每行选取此值之一。
权重分别设置选择"yes"或"no"的概率。如果您希望获得更高的"yes"机会,则必须增加第一个数字。
k设置系列的长度。它必须具有相同的DataFrame长度。
index设置为与df.index相同很重要,否则无论您是从更大的数据帧中对其进行切片,它都会填充Nan
相关文章