以下代码使用python 2.x但不是python 3.x执行。
def index
错误是:
df = pd.DataFrame(data)
gb = df.groupby(['style'])
for a, b in gb:
#any command, iteration fails
变量Traceback (most recent call last):
File "/root/anaconda3/lib/python3.4/site-packages/pandas/core/algorithms.py", line 143, in factorize
sorter = uniques.argsort()
TypeError: unorderable types: int() > str()
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/root/anaconda3/lib/python3.4/site-packages/pandas/core/groupby.py", line 1250, in get_iterator
splitter = self._get_splitter(data, axis=axis)
File "/root/anaconda3/lib/python3.4/site-packages/pandas/core/groupby.py", line 1256, in _get_splitter
comp_ids, _, ngroups = self.group_info
File "pandas/src/properties.pyx", line 34, in pandas.lib.cache_readonly.__get__ (pandas/lib.c:41917)
File "/root/anaconda3/lib/python3.4/site-packages/pandas/core/groupby.py", line 1365, in group_info
comp_ids, obs_group_ids = self._get_compressed_labels()
File "/root/anaconda3/lib/python3.4/site-packages/pandas/core/groupby.py", line 1373, in _get_compressed_labels
all_labels = [ping.labels for ping in self.groupings]
File "/root/anaconda3/lib/python3.4/site-packages/pandas/core/groupby.py", line 1373, in <listcomp>
all_labels = [ping.labels for ping in self.groupings]
File "/root/anaconda3/lib/python3.4/site-packages/pandas/core/groupby.py", line 2023, in labels
self._make_labels()
File "/root/anaconda3/lib/python3.4/site-packages/pandas/core/groupby.py", line 2034, in _make_labels
labels, uniques = algos.factorize(self.grouper, sort=self.sort)
File "/root/anaconda3/lib/python3.4/site-packages/pandas/core/algorithms.py", line 152, in factorize
lambda x: isinstance(x,string_types) ]
File "/root/anaconda3/lib/python3.4/site-packages/pandas/core/algorithms.py", line 151, in <listcomp>
np.sort(np.array([ e for i, e in enumerate(uniques) if f(e) ],dtype=object)) for f in [ lambda x: not isinstance(x,string_types),
File "/root/anaconda3/lib/python3.4/site-packages/numpy/core/fromnumeric.py", line 799, in sort
a.sort(axis, kind, order)
TypeError: unorderable types: int() > str()
是一个字典列表,从python 2和python 3创建的两个数据帧都显示相同的结果。为什么python 3不允许我迭代data
中的pandas.core.groupby.DataFrameGroupBy
对象?
编辑:
以下是数据
中字典的示例gb
答案 0 :(得分:0)
style
看起来应该是一个字符串元组。看起来你在某些元组中有一些整数。一种解决方案是在分组之前将任何非字符串转换为字符串
gb = df.groupby(by=lambda x: tuple(str(i) for i in data[x]['style']))