如何将大量数字映射到熊猫数据框中的另一组数字?

时间:2021-07-08 15:21:40

标签: python pandas dataframe numpy

我有一列数字代表一年中的周数,从 2020 年的第 27 周开始,到 2021 年的第 26 周结束。周数升至 53,然后在新的一年再次从第 1 周开始.我的目标是将这个周数列表分配给一组连续的整数,基本上是从 1 到 53。

例如。第 27 周 = 1,第 28 周 = 2,...,第 26 周 = 53

这样做的最佳方法是什么?

1 个答案:

答案 0 :(得分:1)

啊,这很容易。您可以使用映射制作字典,然后将其应用于数据框中的周数。

如果您运行的是 Python 3.8 或更早版本:

week_map_a = {(i+26):i for i in range(1,27)}
week_map_b = {i:i+26 for i in range(1,27)}
week_map  = {a:b for a,b in list(week_map_a.items())+list(week_map_b.items())}

df['week_numbers'] = df['week_numbers'].apply(lambda x: week_map[x])

如果您运行的是 Python 3.9 或更高版本:

这个

week_map = {(i+26):i for i in range(1,27)} | {i:i+26 for i in range(1,27)}
df['week_numbers'] = df['week_numbers'].apply(lambda x: week_map[x])

也可以。