0
此代碼:更新數據幀包含隨機值即總和爲1
data1 = {'one' : pd.Series([1., 2., 3.], index=['a', 'b', 'c']),
'two' : pd.Series([1., 2., 3.], index=['a', 'b', 'c']),
'three' : pd.Series([1., 1., 4.], index=['a', 'b', 'c'])}
df = pd.DataFrame(data1)
thirds = pd.DataFrame(1/3, index=df.index, columns=df.columns)
print(thirds)
打印:
one three two
a 0.333333 0.333333 0.333333
b 0.333333 0.333333 0.333333
c 0.333333 0.333333 0.333333
其中,預計。
我試圖改變DF數據框,以便它修改了一系列價值觀,使他們總和爲1。最近我必須是:
import numpy as np, numpy.random
data2 = {'one' : pd.Series((np.random.dirichlet(np.ones(3),size=1).flatten()), index=['a', 'b', 'c']),
'two' : pd.Series((np.random.dirichlet(np.ones(3),size=1).flatten()), index=['a', 'b', 'c']),
'three' : pd.Series((np.random.dirichlet(np.ones(3),size=1).flatten()), index=['a', 'b', 'c'])}
random01 = pd.DataFrame(d2)
print(random01)
它打印:
one three two
a 0.173359 0.143096 0.254052
b 0.078862 0.589361 0.700310
c 0.747778 0.267543 0.045639
這對3行數據很好,但如何將相同的修改應用於N行?因此,不是硬編碼數組中的值,而是動態生成它們?
可以提供一個例子? –
當然,我已經添加了一個。 – Lagerbaer