我一直在尝试找出最优雅的方法来查找列表中特定ID的最大索引。我的想法是,有时我会在收到的数据中得到一个重复的ID。我被告知要使用最新的ID值,因为这是列表中的最新ID。
我已经设法使用Pandas实现了这一点,但这很棒,但是我觉得必须有一种更好的方法而不必使用Pandas。
import pandas as pd
list = ['A', 'A', 'B', 'C', 'C']
df = pd.DataFrame({'id': list})
df['idx'] = df.index
df = df.groupby('id').agg({'idx':'max'})
df = df.reset_index()['idx'].to_list()
print(df)
我在想,也许我可以做一个超前/滞后类型的函数,该函数将查看先前的ID值,如果当前ID与先前的值不匹配,则存储先前ID的索引。
您可以在此处使用简单的理解:
lst = ['A', 'A', 'B', 'C', 'C']
{j: i for i,j in enumerate(lst)}
给出:
{'A': 1, 'B': 2, 'C': 4}
注意:但是请不要将其list
用作变量名,因为它会隐藏内置list
函数...
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句