【发布时间】:2021-02-02 07:49:00
【问题描述】:
为了绘制瀑布图,我创建了三个列表作为输入:值、条形文本、轴文本。 我的目标是对第一个和最后一个元素之间的每个数字进行升序排序,即从排序中排除列表中的第一个和最后一个元素。
我有三个包含以下元素的列表:
A = [50000,8000,-3000,-4000,51000]
B = ['Start','Profit1','Cost2','Cost1','End']
C = ['50K','8k','-3k','-4k','51k']
使用建议的方法here(按其他列表对列表中的值进行排序),我声明:
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']
我想我已经接近解决方案了,但已经在这里停留了很长一段时间......
【问题讨论】:
标签: python pandas list dataframe sorting