【发布时间】:2020-05-16 07:47:29
【问题描述】:
我正在尝试通过set 进行转换,但遇到了异常。 Transform 适用于“sum”和许多其他聚合函数,但不适用于 set 或 list。
>>> import pandas as pd
>>> df = pd.DataFrame({"a":[1,2,1,], "b":[1,1,2]})
>>> df
a b
0 1 1
1 2 1
2 1 2
>>> df.groupby("a").b.transform(set)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/Users/avloss/conda/lib/python3.7/site-packages/pandas/core/groupby/generic.py", line 1032, in transform
s = klass(res, indexer)
File "/Users/avloss/conda/lib/python3.7/site-packages/pandas/core/series.py", line 282, in __init__
"{0!r} type is unordered" "".format(data.__class__.__name__)
TypeError: 'set' type is unordered
我所期待的是:
a b
0 1 {1, 2}
1 2 {1}
2 1 {1, 2}
【问题讨论】:
标签: python pandas dataframe set transform