首先,我不确定我这样做是不是最好的方式,所以其他选择是值得赞赏的!在
python创建了一个pandas框架:
raw_data = {'Name' : pd.Series(['david','andrew','calvin','david','calvin','david'], index=['a', 'b', 'c', 'd','e','f']),'Age' : pd.Series([35, 40, 5, 35, 5, 35], index=['a', 'b', 'c', 'd', 'e','f'])}
df = pd.DataFrame(raw_data, columns = ['Name','Age'])
我现在想要groupby和sort(基于'Name'出现次数的频率),并返回前2个记录。即以下输出:
Name Count
david 3
calvin 2
我首先添加一个“Count”列:
^{pr2}$给出:
Name Age Count
a david 35 3
b andrew 39 1
c calvin 5 2
d david 34 3
e calvin 5 2
f david 35 3
然后,我可以使用以下代码对其进行分组和排序:
df[['Name','Count']].groupby('Name').count().sort_values('Count',ascending=0).head(2)
这就是我遇到问题的地方,数据是“正确的”,但列标题似乎在单独的行中…请参见屏幕截图: Column Header Alignment problem pic
我有三个问题
1)为什么会发生这种情况?在
2)如何修复?在
3)有更好的方法吗?在
谢谢!在
[编辑]-我已经回答了问题2,(如何修复它)。显然我需要重置索引:
df.reset_index()
很想知道,为什么还有更好的方法吗?在
您可以使用^{} 和^{} :
相关问题 更多 >
编程相关推荐