Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/haskell/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 3.x 拆分df后的行计数_Python 3.x_Pandas - Fatal编程技术网

Python 3.x 拆分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分成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 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检查每个数组的大小。这有用吗?