df的指令:
years = [2017, 2018, 2019]
dfcols = ['Count', 'Amount']
dataframedict = {'CatA': pd.DataFrame(data=[[1, 5], [2, 6], [3, 7]], columns=dfcols, index=years),
'CatB': pd.DataFrame(data=[[4, 8], [5, 9], [6, 19]], columns=dfcols, index=years),
'CatC': pd.DataFrame(data=[[7,11], [8,12], [9,13]], columns=dfcols, index=years)}
需要2019年按“金额”降序排列的dict密钥列表,因此['CatB'、'CatC'、'CatA']
尝试,以下this变体:
for k in sorted(dataframedict, key=lambda df: df.Amount[-1], reverse=True):
print(k)
获取错误:AttributeError: 'str' object has no attribute 'Amount'
谢谢
如果您只需要一个列表,那么可以使用列表理解和字典的
.items
方法来检索键和数据帧您可以将dict转换为元组排序列表:
输出:
请注意,我正在将
.items()
传递给sorted
。每一个都是长度为2的元组(x[0]
是键,x[1]
是值/df)现在,关于您的错误:当您以排序方式传递dict时,将考虑dict的键:
因此,您在
lambda
中传递字符串相关问题 更多 >
编程相关推荐