PYTHON : DataFrame中大数据的缩写
PYTHON : abbreviate big data in DataFrame
我的数据在数据框中的行数过多
例如)输入:
No col1 col2 col3 col4
1 0 5 6 8
2 0 5 7 8
3 0 7 5 2
4 0 4 4 5
. . . . .
. . . . .
. . . . .
输出:
New_No col1 col2 col3 col4
1 0 5.66 6 6
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
我想将3行缩写成1行
使用平均值(平均 3 行)
我能为此做些什么?
使用groupby
后可以拿mean
:
>>> df = pd.DataFrame(np.random.randint(0, 10, (9, 5)))
>>> df
0 1 2 3 4
0 9 7 9 8 8
1 5 5 5 5 7
2 6 5 3 3 0
3 5 2 9 3 3
4 6 0 5 9 4
5 9 8 9 2 3
6 6 9 8 7 2
7 8 1 9 7 6
8 7 9 2 2 8
>>> df.groupby(np.arange(len(df))//3).mean()
0 1 2 3 4
0 6.666667 5.666667 5.666667 5.333333 5.000000
1 6.666667 3.333333 7.666667 4.666667 3.333333
2 7.000000 6.333333 6.333333 5.333333 5.333333
这是有效的,因为当我们将范围除以 3 时,我们得到 3 个簇:
>>> np.arange(len(df))//3
array([0, 0, 0, 1, 1, 1, 2, 2, 2])
我们可以对这些数字进行分组。这样,即使我们以 2 组结束(比如因为总行数不能被 3 整除),它也会自动给我们正确的平均值。
我的数据在数据框中的行数过多
例如)输入:
No col1 col2 col3 col4
1 0 5 6 8
2 0 5 7 8
3 0 7 5 2
4 0 4 4 5
. . . . .
. . . . .
. . . . .
输出:
New_No col1 col2 col3 col4
1 0 5.66 6 6
. . . . .
. . . . .
. . . . .
. . . . .
. . . . .
我想将3行缩写成1行
使用平均值(平均 3 行)
我能为此做些什么?
使用groupby
后可以拿mean
:
>>> df = pd.DataFrame(np.random.randint(0, 10, (9, 5)))
>>> df
0 1 2 3 4
0 9 7 9 8 8
1 5 5 5 5 7
2 6 5 3 3 0
3 5 2 9 3 3
4 6 0 5 9 4
5 9 8 9 2 3
6 6 9 8 7 2
7 8 1 9 7 6
8 7 9 2 2 8
>>> df.groupby(np.arange(len(df))//3).mean()
0 1 2 3 4
0 6.666667 5.666667 5.666667 5.333333 5.000000
1 6.666667 3.333333 7.666667 4.666667 3.333333
2 7.000000 6.333333 6.333333 5.333333 5.333333
这是有效的,因为当我们将范围除以 3 时,我们得到 3 个簇:
>>> np.arange(len(df))//3
array([0, 0, 0, 1, 1, 1, 2, 2, 2])
我们可以对这些数字进行分组。这样,即使我们以 2 组结束(比如因为总行数不能被 3 整除),它也会自动给我们正确的平均值。