熊猫平均每行大小为 5 的块
Posted
技术标签:
【中文标题】熊猫平均每行大小为 5 的块【英文标题】:pandas mean per row in chunks of size 5 【发布时间】:2020-05-21 11:01:48 【问题描述】:我有一个[100, 50000]
形状的数据框
我想通过以 5 为一组应用每行的平均值来减少它。(所以我将得到一个形状为[100, 10000]
的数据框)。
例如,
所以,如果该行是
[1,8,-1,0,2 , 6,8,11,4,6]
输出将是
[2,7]
最有效的方法是什么?
谢谢
【问题讨论】:
这能回答你的问题吗? Calculate average of every x rows in a table and create new table 【参考方案1】:如果形状是100, 50000
表示100 rows and 50000 columns
,则解决方案是GroupBy.mean
和由列的长度创建的助手np.arange
和axis=1
:
df = pd.DataFrame([[1,8,-1,0,2 , 6,8,11,4,6],
[1,8,-1,0,2 , 6,8,11,4,6]])
print (df)
0 1 2 3 4 5 6 7 8 9
0 1 8 -1 0 2 6 8 11 4 6
1 1 8 -1 0 2 6 8 11 4 6
print (df.shape)
(2, 10)
df = df.groupby(np.arange(len(df.columns)) // 5, axis=1).mean()
print (df)
0 1
0 2 7
1 2 7
如果形状是100, 50000
表示100 columns and 50000 rows
,则解决方案是GroupBy.mean
和由DataFrame 的长度创建的助手np.arange
:
df = pd.DataFrame('a': [1,8,-1,0,2 , 6,8,11,4,6],
'b': [1,8,-1,0,2 , 6,8,11,4,6])
print (df)
a b
0 1 1
1 8 8
2 -1 -1
3 0 0
4 2 2
5 6 6
6 8 8
7 11 11
8 4 4
9 6 6
print (df.shape)
(10, 2)
df = df.groupby(np.arange(len(df)) // 5).mean()
print (df)
a b
0 2 2
1 7 7
【讨论】:
以上是关于熊猫平均每行大小为 5 的块的主要内容,如果未能解决你的问题,请参考以下文章