df = pd.DataFrame({'id': [1,2,3,4,5,6,7,8,9,10], 'Col1': ['a','b','c','d','a','b','c','d','a','b'], 'Col2': ['s','t','u','v','w','x','s','t','u','v']})
id Col1 Col2
0 1 a s
1 2 b t
2 3 c u
3 4 d v
4 5 a w
5 6 b x
6 7 c s
7 8 d t
8 9 a u
9 10 b v
我想得到这样的东西
id Col1 Col2
0 1 a s
1 5 a w
2 9 a u
3 2 b t
4 6 b x
5 10 b v
6 3 c u
7 7 c s
8 4 d v
9 8 d t
我用groupby关键字搜索了stackoverflow,没有找到与我类似的问题。
print( df.sort_values(['Col1', 'id', 'Col2'], ignore_index=True) )
打印:
id Col1 Col2
0 1 a s
1 5 a w
2 9 a u
3 2 b t
4 6 b x
5 10 b v
6 3 c u
7 7 c s
8 4 d v
9 8 d t
问题内容: 如何对pandas groupby操作应用排序?下面的命令返回一个错误,指出“布尔”对象不可调用 问题答案: 通常,排序是在groupby键上执行的,并且您发现您无法调用groupby对象,您可以做的是调用并传递函数并将列作为kwarg参数传递: 另外,您可以在分组之前对df进行排序: 更新资料 对于不建议使用的版本,请参见docs,现在应使用: 在这里在评论中添加@xgdgsc的答案
我有一个数据框架,其中包含进程列表和它们所花费的时间,如下所示 我想得到以下结果 我知道如何使用gorupby以获得ONE,但只获得其中一个列。这就是我解决问题的方法 但是,如何获得所需的df而不必一列一列地组合它呢?对我来说,这种方法还不够“泛音速”(也不够pythonic)
我有以下数据框: 我需要按年和月分组数据。即:按2013年1月、2013年2月、2013年3月等分组...我将使用新分组的数据来创建一个显示每年/每月abc vs xyz的图表。 我尝试过groupby和sum的各种组合,但似乎没有任何效果。 谢谢你的帮助。
问题内容: pandas groupby的默认行为是将group by列转换为index并将其从数据框的列列表中删除。例如,说我有一个包含这些列的dataFrame 如果我申请一个GROUPBY发言权列和这样 数据框不再在列列表中。它们将自动转换为结果数据帧的索引。 我的问题是如何对列执行groupby并将该列保留在数据框中? 问题答案:
问题内容: 另一个熊猫问题。 阅读韦斯·麦金尼(Wes Mckinney)关于数据分析和熊猫的出色著作,我遇到了以下我认为应该起作用的事情: 假设我有一些有关提示的信息。 我想知道与总费用有关的五个最大技巧,即分别针对吸烟者和不吸烟者。所以这有效: 足够好了,但是然后我想使用pandas的transform来做类似的事情: 但是我得到了这个: 为什么?我知道转换需要返回与输入相同尺寸的数组,因此我
我已经看到了将一个列/系列分解成熊猫数据框架的多个列这一主题的一些变体,但是我一直在尝试做一些事情,但是现有的方法并没有真正成功。 给定如下数据帧: 我想将系列中的项目转换为列,以 值作为值,如下所示: 我觉得这应该是一个相对简单的问题,但我已经为此努力了几个小时,不断增加的复杂程度,但没有成功。