You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.21 18:40:11