在带有随机字符串值的PANAS中插入新列

Insert a new column in pandas with random string values(在带有随机字符串值的PANAS中插入新列)
本文介绍了在带有随机字符串值的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中插入新列的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!

本站部分内容来源互联网,如果有图片或者内容侵犯您的权益请联系我们删除!

相关文档推荐

Leetcode 234: Palindrome LinkedList(Leetcode 234:回文链接列表)
How do I read an Excel file directly from Dropbox#39;s API using pandas.read_excel()?(如何使用PANDAS.READ_EXCEL()直接从Dropbox的API读取Excel文件?)
subprocess.Popen tries to write to nonexistent pipe(子进程。打开尝试写入不存在的管道)
I want to realize Popen-code from Windows to Linux:(我想实现从Windows到Linux的POpen-code:)
Reading stdout from a subprocess in real time(实时读取子进程中的标准输出)
How to call type safely on a random file in Python?(如何在Python中安全地调用随机文件上的类型?)