首页 > 解决方案 > 在熊猫数据框中,将所有列的所有值转换为随机浮点数

问题描述

我有一个看起来像这样的数据框:

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

我的代码包含一些条件,如果其中一个条件得到满足,我想将所有列中的所有值转换为 0 到 1 之间的随机浮点数。我想保持形状和列名相同,所以我希望有一个简单的方法来做到这一点,比如:

In [4]: df2 = df.apply(value_randomization(0,1))
In [5]: df2
Out[6]:
    A     B     C     D
0   0.76  0.88  0.44  0.92
1   0.62  0.34  0.2   0.86
2   0.85  0.65  0.11  0.31
3   0.74  0.43  0.42  0.56

有这么简单的解决方案吗?如果没有,你会推荐我什么?tnx

标签: pythonpandasdataframenumpyrandom

解决方案


尝试

df[:] = np.random.random(df.shape)
df
Out[283]: 
          A         B         C         D
0  0.151300  0.196162  0.200368  0.775231
1  0.844184  0.611911  0.055625  0.015523
2  0.687728  0.693773  0.364394  0.357987
3  0.887951  0.882617  0.175575  0.318022

推荐阅读