Python 3.x 拆分df后的行计数
我不得不将df分成20个相等的组(不是完全相等,共有6076行)。现在我需要创建一个新的df,其中每个单元格等于每个组中的行数。例如,我有20个组,共304行,所以我需要“pool_size”列,如下所示: 第一排304,第二排304,第三排304……等等 为了断开df,我使用了:Python 3.x 拆分df后的行计数,python-3.x,pandas,Python 3.x,Pandas,我不得不将df分成20个相等的组(不是完全相等,共有6076行)。现在我需要创建一个新的df,其中每个单元格等于每个组中的行数。例如,我有20个组,共304行,所以我需要“pool_size”列,如下所示: 第一排304,第二排304,第三排304……等等 为了断开df,我使用了: >>> df_split = np.array_split(df, 20) 谢谢 我可能不理解,但你不能使用: df_split.shape[0] #for length/row numbers
>>> df_split = np.array_split(df, 20)
谢谢 我可能不理解,但你不能使用:
df_split.shape[0] #for length/row numbers in DF
(或df_split.shape[1]表示宽度)我不确定是否完全理解这些问题,但您可以尝试通过以下方式为每行添加值等于304的“pool_size”列:
df["pool_size"] = 304
编辑:
在通过np.array\u split分割数据帧之后,您有一个数据帧列表,因此您可以通过.shape迭代列表并检查每一行的大小。然后您可以通过上面的代码更新df。应该是这样的,但我还没检查过
for df_ in df_split:
df_["pool_size"] = df_.shape[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
非常感谢。共有20组)这一组成功地计算了整个df或拆分df中的一组,但不是每个组不幸的是,我很想这样做,但是其中一个组有更多行,我不确定哪一个),因为原始df中的总行数是6076。。。事实上,我不确定到底有多少行,但我认为如果我无法找到另一个解决方案,我将检查每个组,并完全按照您的建议执行。非常感谢。哦,好的,因为每一行的长度都不相同,所以您可以在更改pool_size列的同时循环外部数组并检查每个内部数组的长度。您可以使用nditer在数组中循环,然后使用.size或.shape检查每个数组的大小。这有用吗?