Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/314.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Pythonic随机分配数据帧条目的方法_Python_Pandas_Random - Fatal编程技术网

Pythonic随机分配数据帧条目的方法

Pythonic随机分配数据帧条目的方法,python,pandas,random,Python,Pandas,Random,假设我们有一个数据帧 In [1]: df = pd.DataFrame(np.random.randint(0,100,size=(100, 4)), columns=list('ABCD')) In [2]: df Out[3]: A B C D 0 45 88 44 92 1 62 34 2 86 2 85 65 11 31 3 74 43 42 56 4 90 38 34 93 5 0 94 45 1

假设我们有一个数据帧

In [1]: df = pd.DataFrame(np.random.randint(0,100,size=(100, 4)), columns=list('ABCD'))

In [2]: df
Out[3]:
     A   B   C   D
0   45  88  44  92
1   62  34   2  86
2   85  65  11  31
3   74  43  42  56
4   90  38  34  93
5    0  94  45  10
..  ..  ..  ..  ..
如何用一个值(例如
None
)随机替换所有条目的x%

In [4]: something(df, percent=25)
Out[5]:
     A   B   C   D
0   45  88  None  92
1   62  34   2  86
2   None  None  11  31
3   74  43  None  56
4   90  38  34  None
5    None  94  45  10
..  ..  ..  ..  ..
我已经找到了关于采样特定轴的信息,我可以想象一种在数据帧的维度内随机生成整数并将其设置为等于
None
,但这感觉不是很像python

  • 编辑:忘记标题中的“方式”

您可以组合
数据帧。其中
np.random.uniform

In [37]: df
Out[37]: 
   A  B  C  D
0  1  0  2  2
1  2  2  0  3
2  3  0  0  3
3  0  2  3  1

In [38]: df.where(np.random.uniform(size=df.shape) > 0.3, None)
Out[38]: 
      A  B     C     D
0     1  0     2  None
1     2  2     0     3
2     3  0  None  None
3  None  2     3  None
这不是最简洁的,但能完成任务


不过请注意,如果您还有计算要做,您应该问问自己是否真的想这样做。如果你在一列中没有,那么熊猫将不得不使用慢速对象数据类型,而不是像int64或float64这样的快速对象。

我喜欢用true和False进行随机选择谢谢,我实际上不想用None代替None,我只想用一组随机核苷酸(a、C、G或T)代替在一系列带有“N”的DNA序列中。我不确定这是否会改变你的答案。我做了一些测试,试图通过随机选择维度内的整数来实现这一点,但很快就会变得效率低下。@IanGilman你在使用一个由代表核苷酸序列的单个字母组成的数据框架?您可能应该确保没有使用
对象
数据类型。这将是空间和时间效率低下的,如果您知道每个值都是一个字母,您可以将内存使用量减少到
object
dtype所需的一小部分