![](/img/trans.png)
[英]Compare float values in one column with all other columns in a 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.