我有一个数据框
A B C
0 1 2 3
1 2 3 3
2 3 2 1
我需要在 pandas DataFrame 中创建一个新列,并随机填充此列中的“是”或“否”。
A B C NEW
0 1 2 3 yes
1 2 3 3 no
2 3 2 1 no
使用 random.choice 会导致每一行的结果都相同的列
A B C NEW
0 1 2 3 no
1 2 3 3 no
2 3 2 1 no
我尝试了 map、apply 和 applymap 但有更简单的方法。
您必须将新列设置为pd.Series
然后使用random.choices:
import random
df['NEW'] = pd.Series(
random.choices(['yes', 'no'], weights=[1, 1], k=len(df)),
index=df.index
)
random.choices
将为每一行选取其中一个值。
weights
分别设置选择“是”或“否”的概率。如果您希望获得更高的“是”机会,即您必须增加第一个数字。
k
设置系列的长度。它必须具有相同长度的 DataFrame。
index
重要的是设置为相同df.index
否则,无论您是否从更大的 DataFrame 中切片它,它都可以填充 NaN
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)