如何计算组中的记录数并将其保存在csv文件中?

2024-10-04 01:30:30 发布

您现在位置:Python中文网/ 问答频道 /正文

我的数据集如下:

import  pandas as pd

dict = {"A":[1,1,1,1,5],"B":[1,1,2,4,1]}

dt = pd.DataFrame(data=dict)

具体如下:

  A  B
  1  1
  1  1
  1  2
  1  4
  5  1

我需要基于AB计算每个组有多少条记录来应用groupby?

我已应用以下解决方案:

dtSize = dt.groupby(by=["A","B"], as_index=False).size()
dtSize.to_csv("./datasets/Final DT/dtSize.csv", sep=',', encoding='utf-8', index=False)

我有两个问题:

  1. 当我打开保存的文件时,它只包含最后一列,其中包括每个组中的number元素,但不包括

  2. 当我打印最后的dtSize时,它如下所示:

enter image description here

因此,A中的一些类似记录丢失了。你知道吗

我的favorit输出如下在.csv文件中

A  B   Number of elements in group
1  1    2
1  2    1
1  4    1
5  1    1

Tags: 文件csv数据importfalsedataframepandasindex
1条回答
网友
1楼 · 发布于 2024-10-04 01:30:30

实际上,来自A的数据并没有丢失。GroupBy.size返回一个序列,因此AB用作MultiIndex。因此,不会打印前三行中A的重复值。你知道吗

你很接近。您需要重置索引,并可以选择将结果命名为:

dt.groupby(['A', 'B']).size().reset_index(name='Size')

结果是:

   A  B  Size
0  1  1     2
1  1  2     1
2  1  4     1
3  5  1     1

相关问题 更多 >