在数据帧中,将所有列的所有值转换为随机浮点

2024-05-13 11:04:38 发布

您现在位置:Python中文网/ 问答频道 /正文

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

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


Tags: 数据方法代码indfvalueout条件
3条回答

试一试

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

试试这个:

df2 = pd.DataFrame(np.random.random(size=(len(df.index),len(df.columns))),columns= df.columns).round(2)

结合BENY和rhug123的答案,这是迄今为止我遇到的最令人满意的解决方案:

df2 = pd.DataFrame(data=np.random.random(df.shape), columns=df.columns, index=df.index)

相关问题 更多 >