我从这样的输入数据开始
df1 = pandas.DataFrame( {
"Name" : ["Alice", "Bob", "Mallory", "Mallory", "Bob" , "Mallory"] ,
"City" : ["Seattle", "Seattle", "Portland", "Seattle", "Seattle", "Portland"] } )
打印时显示为:
City Name
0 Seattle Alice
1 Seattle Bob
2 Portland Mallory
3 Seattle Mallory
4 Seattle Bob
5 Portland Mallory
分组非常简单:
g1 = df1.groupby( [ "Name", "City"] ).count()
并且打印生成一个GroupBy
对象:
City Name
Name City
Alice Seattle 1 1
Bob Seattle 2 2
Mallory Portland 2 2
Seattle 1 1
但我最终想要的是另一个DataFrame对象,它包含GroupBy对象中的所有行。换句话说,我想得到以下结果:
City Name
Name City
Alice Seattle 1 1
Bob Seattle 2 2
Mallory Portland 2 2
Mallory Seattle 1 1
我不太明白如何在熊猫文档中实现这一点。欢迎任何暗示。
简单地说,这应该完成以下任务:
在这里,grouped_df.size()将调出唯一的groupby计数,reset_index()方法将重置所需列的名称。 最后,调用pandas Dataframe()函数来创建Dataframe对象。
我想稍微改变一下Wes给出的答案,因为0.16.2版需要
as_index=False
。如果不设置,则会得到一个空数据帧。Source:
编辑:
在版本} 和^{} 中使用} 中使用参数
0.17.1
和更高版本中,可以在^{subset
,在^{name
:count
和size
的区别在于size
计算NaN值,而count
不计算NaN值。这里是一个数据帧。它有一个层次索引,不过:
也许你想要这样的东西?
或者类似于:
相关问题 更多 >
编程相关推荐