給出大熊貓以下數據幀:裝箱一個數據幀在大熊貓在Python
import numpy as np
df = pandas.DataFrame({"a": np.random.random(100), "b": np.random.random(100), "id": np.arange(100)})
其中id
爲選自由a
和b
值的每個點的ID,我倉a
和b
到如何可以在指定(這樣我就可以取每個箱中的中值/平均值a
和b
)?對於df
中的任何給定行,df
可能具有NaN
值a
或b
(或兩者)。謝謝。
下面是使用Joe Kington的解決方案和更現實的df的更好的示例。我不確定的事情是如何訪問df.b元素下面的每個df.a組:
a = np.random.random(20)
df = pandas.DataFrame({"a": a, "b": a + 10})
# bins for df.a
bins = np.linspace(0, 1, 10)
# bin df according to a
groups = df.groupby(np.digitize(df.a,bins))
# Get the mean of a in each group
print groups.mean()
## But how to get the mean of b for each group of a?
# ...
優秀,優雅!正是我所期待的。根本不需要對數據幀進行排序。 – user248237dfsf
如果你想訪問基於組的「b」值,該怎麼辦? 'groups.mean()'給你提供了'a'的手段,我相信。 – user248237dfsf
@ user248237dfsf - 不,它給出了'a'和'b'的意思(或者說,它給出了'a'中的值的b的平均值,這正是我以爲你所要求的) 。 –