2024-06-02 06:56:38 发布
网友
给定一个数据帧,该数据帧记录某些书籍的使用情况,例如:
Name Type ID Book1 ebook 1 Book2 paper 2 Book3 paper 3 Book1 ebook 1 Book2 paper 2
我需要清点所有的书,保留其他栏目,然后得到这个:
Name Type ID Count Book1 ebook 1 2 Book2 paper 2 2 Book3 paper 3 1
怎么能做到?
谢谢!
我认为as_index=False应该起作用。
df.groupby(['Name','Type','ID'], as_index=False).count()
您需要以下内容:
In [20]: df.groupby(['Name','Type','ID']).count().reset_index() Out[20]: Name Type ID Count 0 Book1 ebook 1 2 1 Book2 paper 2 2 2 Book3 paper 3 1
在您的示例中,“Name”、“Type”和“ID”列在值中匹配,因此我们可以对它们进行^{}处理,调用^{},然后调用^{}。
另一种方法是使用transform添加“Count”列,然后调用drop_duplicates:
transform
drop_duplicates
In [25]: df['Count'] = df.groupby(['Name'])['ID'].transform('count') df.drop_duplicates() Out[25]: Name Type ID Count 0 Book1 ebook 1 2 1 Book2 paper 2 2 2 Book3 paper 3 1
我认为as_index=False应该起作用。
您需要以下内容:
在您的示例中,“Name”、“Type”和“ID”列在值中匹配,因此我们可以对它们进行^{} 处理,调用^{} ,然后调用^{} 。
另一种方法是使用
transform
添加“Count”列,然后调用drop_duplicates
:相关问题 更多 >
编程相关推荐