实际数据:
ID Name Count
ss ih 5
tq gg 5
xy ab 5
st gh 4
yz ab 4
xv ab 4
xy bc 3
yz rs 3
xy cd 2
xv cd 2
xv mn 1
zq jk 1
输入:我有一个包含大量数据的数据框。在对名称(“ab”)进行筛选后,我们从整个数据中获取此数据帧,例如:
ID Name Count
xy ab 5
yz ab 4
xv ab 4
现在使用上面的ID,我过滤整个数据集文件,得到
ID Name Count
xy ab 5
xy bc 3
xy cd 2
ID Name Count
yz bc 5
yz ab 4
yz rs 3
ID Name Count
xv ab 4
xv cd 2
xv mn 1
所需输出:我只想将我们得到的所有3个数据帧合并到第一个ID中,并添加计数
ID Name Count
xy ab 13
xy bc 8
xy cd 4
xy rs 3
xy mn 1
代码:我知道代码,但不知道如何在这里实现它
merge: df=pd.merge(df_1,df_2, how="outer", on=["Name"])
count : df['Count'] = df.loc(df['Count'].value_counts())
Imp point:我刚刚以“ab”作为第一个过滤器为例。我想用所有的“Name”值来做。我们只是在每次迭代中删除其余的ID(yz和xv)
以下是我的建议:
从您的
DataFrame
中:首先,我们可以保存在
ab
上筛选的serie
:然后,我们从上面的
serie
中过滤ID
上的整个DataFrame
:下一步,我们使用
groupby
获取Count
列的sum
,如下所示:最后,我们可以添加序列
serie_name_filtered
中第一个ID
的ID
列以获得预期结果:要对
Name
中的所有名称执行此操作并将结果保存在dict
中,请执行以下操作:相关问题 更多 >
编程相关推荐