繁体   English   中英

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

[英]In a pandas dataframe convert all values of all columns to random float

我有一个看起来像这样的 dataframe:

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

尝试

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)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM