分割df后计算行数

时间:2019-08-14 13:09:22

标签: python-3.x pandas

我不得不将df分为20个相等的组(不是完全相等,有6076行)。现在,我需要使用列创建新的df,其中每个单元格等于每个组中的行数。例如,我有20组,每组304行,因此需要如下所示的“ pool_size”列: 第一排304,第二排304,第三排304 ...等等

为了破解df,我使用了:

>>> df_split = np.array_split(df, 20)

谢谢!

3 个答案:

答案 0 :(得分:1)

我不确定我是否完全理解这些问题,但是您可以尝试通过以下方式为每行添加值“ 304”的“ pool_size”列:

    df["pool_size"] = 304

编辑: 通过np.array_split拆分数据帧后,您将获得一个数据帧列表,因此您可以遍历该列表并通过 .shape 检查每行的大小。然后,您可以通过上面的代码更新该df。它应该看起来像这样,但是我还没有检查。

    for df_ in df_split:
        df_["pool_size"] = df_.shape[1]

答案 1 :(得分:1)

您可以尝试:

pd.DataFrame([df.shape[0] for df in df_split], columns=['pool_size'])

结果:

    pool_size
0          16
1          16
2          16
3          16
4          15
5          15
6          15
7          15
8          15
9          15
10         15
11         15
12         15
13         15
14         15
15         15
16         15
17         15
18         15
19         15

答案 2 :(得分:0)

我可能不太了解,但是您不能使用:

df_split.shape[0] #for length/row numbers in DF

(或df_split.shape [1]表示宽度)