本文介绍了在带有随机字符串值的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

这篇关于在带有随机字符串值的PANAS中插入新列的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

11-02 23:32