说我有一个数据框:
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/