首页 > 解决方案 > PANDAS - 使用 2 个变量列计算和存储值

问题描述

我正在努力解决一个问题,但我什至知道如何思考。我有以下输出:

1     JJAT  36.0
2     JJEL  28.5
3     JJEL  36.0
4     JJEL  36.0
5     JJAA  30.0
6     JJEL  36.0
7     JJEL  22.5

我需要计算各自的数字,我想要的输出:

JJAT  36.0  1
JJEL  22.5  1
JJEL  28.5  1
JJEL  36.0  3
JJAA  30.0  1

输出可以是另一种格式。我尝试了 groupby 但它错过了相关性(带有数字和计数的名称)

标签: pythonpandas

解决方案


我冒昧地将列命名为name and val

输入DF

    name    val
0   JJAT    36.0
1   JJEL    28.5
2   JJEL    36.0
3   JJEL    36.0
4   JJAA    30.0
5   JJEL    36.0
6   JJEL    22.5

代码

df.groupby(['name', 'val'], as_index=False).size()

输出

    name    val size
0   JJAA    30.0    1
1   JJAT    36.0    1
2   JJEL    22.5    1
3   JJEL    28.5    1
4   JJEL    36.0    3

输入df创建

d="""name,val
JJAT,36.0
JJEL,28.5
JJEL,36.0
JJEL,36.0
JJAA,30.0
JJEL,36.0
JJEL,22.5"""
df=pd.read_csv(StringIO(d))
df

推荐阅读