我不得不将df分为20个相等的组(不是完全相等,有6076行)。现在,我需要使用列创建新的df,其中每个单元格等于每个组中的行数。例如,我有20组,每组304行,因此需要如下所示的“ pool_size”列: 第一排304,第二排304,第三排304 ...等等
为了破解df,我使用了:
>>> df_split = np.array_split(df, 20)
谢谢!
答案 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]表示宽度)