我有这个 pandas 数据框,其中包含一个类型为 int64 的月份列,我想将该列中的每个值更改为一年中相应的季节。
例如,如果 x 是 12、1 或 2 中的任意一个,请将 x 的值更改为 'winter'
等。
我尝试了一些for循环但没有用。我认为有一个衬垫可以使用 lambda x 来完成此操作。
我认为每个月只有 1 个季节,例如冬天是在第 12、1 和 2 个月,依此类推。
例如(0、1、2 是索引):
输入:
0 1
1 3
2 6
输出:
0 winter
1 spring
2 summer
我的问题是 12 个月,否则我可以使用垃圾箱。
有什么想法吗?
最佳答案
一种快速灵活的方法是将字典从当前列值映射到新列值:
d = dict(zip(range(1,13), ["winter"]*2 + ["spring"]*3 + ["summer"]*3 + ["fall"]*3 + ["winter"]))
df = pd.DataFrame(dict(month=[3,4,6,1,5,6,2,4,5]))
df = df.month.map(d)
输出:
0 spring
1 spring
2 summer
3 winter
4 spring
5 summer
6 winter
7 spring
8 spring
Name: month, dtype: object
关于python - 如何更改 pandas 数据框列中的每个值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69501996/