要绘制瀑布图,我创建了三个列表作为输入:数值、条形文本和轴文本。
我的目标是将第一个和最后一个元素之间的每个数字按升序排序,即排除列表中的第一个和最后一个元素不参与排序。
我有三个包含以下元素的列表:
我有三个包含以下元素的列表:
A = [50000,8000,-3000,-4000,51000]
B = ['Start','Profit1','Cost2','Cost1','End']
C = ['50K','8k','-3k','-4k','51k']
使用这里提供的方法(通过另一个列表排序列表中的值),我声明:
a_new = sorted(A)
b_new = [x for _, x in sorted(zip(A, B))]
c_new = [x for _, x in sorted(zip(A, C))]
print(a_new)
print(b_new)
print(c_new)
并将其作为输出接收:
[-4000, -3000, 8000, 50000, 51000]
['Cost1', 'Cost2', 'Profit1', 'Start', 'End']
['-4k', '-3k', '8k', '50K', '51k']
我的目标是固定列表的第一个和最后一个元素,只对所有其他元素进行排序。期望结果:
[50000,-4000,-3000,8000,51000]
['Start','Cost1', 'Cost2', 'Profit1','End']
['50K','-4k', '-3k', '8k','51k']
我认为我已经接近解决方案,但是在这里卡了很长时间...
np.argsort(A[1:-1])[::-1]
的部分。 - Quang Hoang