我需要生成一个映射数据,包含每个唯一的代码和我想要优先排序的描述,但需要基于一组优先级选项来实现。因此,例如,开始的dataframe可能如下所示:
Filename TB Period Company Code Desc. Amount
0 3 - Foxtrot... Prior TB FOXTROT FOXTROT__1000 98 100
1 3 - Foxtrot... Prior TB FOXTROT FOXTROT__1000 7 200
2 3 - Foxtrot... Opening TB FOXTROT FOXTROT__1000 ZX -100
3 3 - Foxtrot... Closing TB FOXTROT FOXTROT__1000 29 -200
4 3 - Foxtrot... Prior TB FOXTROT FOXTROT__1001 BA 100
5 3 - Foxtrot... Opening TB FOXTROT FOXTROT__1001 9 200
6 3 - Foxtrot... Closing TB FOXTROT FOXTROT__1001 ARC -100
7 3 - Foxtrot... Closing TB FOXTROT FOXTROT__1001 86 -200我在确定描述的优先次序方面有以下选择:
例如,如果我希望优先关闭,然后打开,然后使用最长的字符串,我应该得到一个如下所示的映射数据:
Code New Desc.
FOXTROT__1000 29
FOXTROT__1001 ARC仅就上下文而言,我有一种非常简单的方法在tkinter中完成所有这些工作,但它依赖于生成一个由不一致代码和它们描述的组合框组成的GUI,然后用于生成映射数据。
问题是,对于大容量(>1000到30,000个不一致代码),生成GUI变得不切实际,因此对于大卷,我需要这样做,以自动从初始数据直接生成映射数据,同时完全避开tkinter。
发布于 2022-05-29 19:21:07
import numpy as np
import pandas as df
#Create a new column which shows the hierarchy given the value of Period
df['NewFilterColumn'] = np.where( df['Period'] == 'Closing', 1,
np.where(df['Period'] == 'Opening', 2,
np.where(df['Period'] == 'Prior', 3, None
)
)
)
df = df.sort_values(by = ['NewFilterColumn', 'Code','New Desc.'], ascending = True, axis = 0)https://stackoverflow.com/questions/72426018
复制相似问题