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

Pandas拆分正负值DataFrame时缺失Title列,如何修正代码?

如何拆分DataFrame为包含正负值的两个完整DataFrame

你遇到的问题其实是因为agg()方法是用来对列做聚合计算的,它只会返回处理后的单个列数据,自然就丢失了Title列信息。要保留完整的行数据,我们应该用布尔索引来筛选整行,而不是对列做聚合。

先回顾你的初始DataFrame定义:

import pandas as pd

headers = ['Title','GainLoss'] 
data = {'Title':['BMW','Geox','Bugatti','Toyota'],'GainLoss':[300,-87,658,-279]} 
df = pd.DataFrame(data,columns=headers)

正确的实现方法

直接通过布尔条件筛选整行数据,这样就能保留所有列:

# 筛选GainLoss为正的所有行,得到完整的DataFrame
TitleGain = df[df['GainLoss'] > 0]
# 筛选GainLoss为负的所有行,得到完整的DataFrame
TitleLoss = df[df['GainLoss'] < 0]

验证结果

打印TitleGain会得到:

Title  GainLoss
0      BMW       300
2  Bugatti       658

打印TitleLoss会得到:

Title  GainLoss
1    Geox       -87
3  Toyota      -279

这样就完美保留了Title列和对应的GainLoss值,完全符合你的需求。

内容的提问来源于stack exchange,提问作者Nepura

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.06 23:12:48