5
我有一個正常的DF如何使用groupby將多個函數應用於Pandas中的多個列?
A = pd.DataFrame([[1, 5, 2], [2, 4, 4], [3, 3, 1], [4, 2, 2], [5, 1, 4]],
columns=['A', 'B', 'C'], index=[1, 2, 3, 4, 5])
繼this recipe,我得到了我想要的結果。
In [62]: A.groupby((A['A'] > 2)).apply(lambda x: pd.Series(dict(
up_B=(x.B >= 0).sum(), down_B=(x.B < 0).sum(), mean_B=(x.B).mean(), std_B=(x.B).std(),
up_C=(x.C >= 0).sum(), down_C=(x.C < 0).sum(), mean_C=(x.C).mean(), std_C=(x.C).std())))
Out[62]:
down_B down_C mean_B mean_C std_B std_C up_B up_C
A
False 0 0 4.5 3.000000 0.707107 1.414214 2 2
True 0 0 2.0 2.333333 1.000000 1.527525 3 3
這個方法是好的,但是想象一下,你不得不爲大量的列(15-100)做到這一點,那麼你的公式,它可以是繁瑣的輸入所有的東西。
鑑於相同的公式適用於所有列。有沒有一種有效的方法來做到這一點的大量列?
感謝
這是很清楚的。謝謝。 – hernanavella 2014-10-05 20:02:58