Python 熊猫';bool对象不可调用';
我有一个包含多个列的数据框架,我正试图将它根据一个列进行分组,并根据另一个列对其进行排序。 如果我像这样应用groupby():Python 熊猫';bool对象不可调用';,python,sorting,pandas,dataframe,Python,Sorting,Pandas,Dataframe,我有一个包含多个列的数据框架,我正试图将它根据一个列进行分组,并根据另一个列对其进行排序。 如果我像这样应用groupby(): data.groupby(columnA) data.groupby(columnA).sort(coulmnB) 它不会吐出任何错误,但如果我尝试按如下方式排序: data.groupby(columnA) data.groupby(columnA).sort(coulmnB) 它给了我 TypeError: 'bool' object is not cal
data.groupby(columnA)
data.groupby(columnA).sort(coulmnB)
它不会吐出任何错误,但如果我尝试按如下方式排序:
data.groupby(columnA)
data.groupby(columnA).sort(coulmnB)
它给了我
TypeError: 'bool' object is not callable
我在任何列中都没有任何bool对象,而且完全不知道为什么会发生这个错误。
我该如何解决这个问题?如果我完全做错了,还有什么方法可以对数据帧进行分组,并根据两个不同的列对其进行排序?
提前谢谢。我想您需要:
编辑:但最好只使用
已弃用
但如果使用get error:
print (data.groupby('colA').sort_values('colB'))
AttributeError:无法访问“DataFrameGroupBy”对象的可调用属性“sort_values”,请尝试使用“apply”方法
由于要先按columnA再按columnB排序,因此只能使用以下方法进行排序:
注意:
sort
是groupby的一个(布尔)属性,因此不能调用它:
In [21]: data.groupby("columnA").sort
Out[21]: True
In [22]: data.groupby("columnA", sort=False).sort
Out[22]: False
In [23]: True()
TypeError: 'bool' object is not callable
通过以下示例,您可以看到它的内部功能:
In [31]: df = pd.DataFrame([["b", 1], ["a", 2]], columns=["A", "B"])
In [32]: df.groupby("A").sum()
Out[32]:
B
A
a 2
b 1
In [33]: df.groupby("A", sort=False).sum()
Out[33]:
B
A
b 1
a 2
注意:这种行为/排序是不保证的,它只是意味着熊猫不会特意排序groupby键。。。e、 g.对于某些索引类型,它可以排序:
In [34]: df.groupby("B", sort=False).sum()
Out[34]:
A
B
1 b
2 a