Python 3.12.3中x[::-1]无法反转分组Pandas DataFrame列的问题
问题:Pandas 2.2.1中分组内反转列值失效的问题
场景与示例数据
我有一个含16万条记录、60列以文本为主的大型Pandas DataFrame,示例DataFrame如下:
import pandas as pd df1 = pd.DataFrame([ {"GROUP": "A", "COL2": "1", "COL3": "P"}, {"GROUP": "A", "COL2": "2", "COL3": "Q"}, {"GROUP": "A", "COL2": "3", "COL3": "R"}, {"GROUP": "B", "COL2": "4", "COL3": "S"}, {"GROUP": "B", "COL2": "5", "COL3": "T"}, {"GROUP": "B", "COL2": "6", "COL3": "U"}, {"GROUP": "B", "COL2": "7", "COL3": "V"} ])
需求说明
需要新增一列,仅在GROUP分组(A、B组)内反转COL2的顺序,预期结果从上到下为3,2,1,7,6,5,4。
原代码与问题
此前使用以下代码可正常实现需求:
df1['REVERSED_COL'] = df1.groupby("GROUP")["COL2"].transform(lambda x: x[::-1])
但升级到Python 3.12.3(同步升级Pandas至2.2.1)后,该代码失效,得到不符合预期的结果。
测试验证
单独测试列表使用x[::-1]反转是正常的:
x = [1,2,3,4,5,6,7,8,9] print(x) y = x[::-1] print(y)
输出结果:
[1, 2, 3, 4, 5, 6, 7, 8, 9] [9, 8, 7, 6, 5, 4, 3, 2, 1]
疑问与求助
我查阅了Python和Pandas 2.2.1的文档,未找到相关说明,想询问:
- 是否我的操作存在错误?
- 有没有可替代的实现方法?
内容的提问来源于stack exchange,提问作者compx
相关产品推荐
相关产品推荐

