说我有一个数据框:

     X    Y
1   'a'  ('good','pretty')
2   'b'  ('bad','ugly')
3   'z'  ('ok','soso')


我需要创建三个不同的列表。 b在不同的行中有丑陋的丑陋等等。

如何通过自动从X列获取值来创建这些列表变量来做到这一点?

这是代码:

list1 = ['good, pretty','a']
list2 = ['bad, ugly','b']
list3 = ['ok, soso','c']
test = pd.DataFrame([list1, list2, list3], columns=['desc', 'item'])
test


数据框看起来像:

           desc item
0  good, pretty    a
1     bad, ugly    b
2      ok, soso    c


我需要最终列表如下所示:

 {'a':     ('good','pretty'),
  'b':     ('bad','ugly'),
  'c':     ('ok','soso')}

最佳答案

对groupby使用字典理解。

>>> {idx: group['desc'].tolist()
     for idx, group in test.groupby('item')}

{'a': ['good, pretty'], 'b': ['bad, ugly'], 'c': ['ok, soso']}

关于python - 如何在值后命名python变量?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/37152128/

10-16 03:16