使用pivot_table指定values='SWAP_SPREAD'返回空DataFrame求助
解决pivot_table返回空DataFrame的问题
排查步骤及解决方案
1. 确认列名是否准确
首先检查数据集的列名是否和你指定的'SWAP_SPREAD'完全一致,比如是否存在大小写差异、空格或特殊字符:
import pandas as pd df = pd.read_csv('Data.csv') # 打印所有列名 print(df.columns.tolist())
如果实际列名是'SWAP SPREAD'(带空格),需要修改values参数为对应的列名。
2. 检查SWAP_SPREAD列的有效值情况
如果该列全为空值,pivot_table默认的聚合函数(mean)会返回空列,执行以下代码查看空值数量:
print(f"SWAP_SPREAD列空值总数:{df['SWAP_SPREAD'].isna().sum()}") print(f"数据集总行数:{len(df)}")
如果空值占比极高或全为空,可以:
- 先处理空值(比如用
fillna填充合理值):df['SWAP_SPREAD'] = df['SWAP_SPREAD'].fillna(0) # 根据业务场景选择填充值 df = df.pivot_table(index='FECHA', columns='TICKET', values='SWAP_SPREAD') - 更换聚合函数,比如取第一个非空值:
df = df.pivot_table(index='FECHA', columns='TICKET', values='SWAP_SPREAD', aggfunc='first')
3. 验证分组列的有效性
检查FECHA和TICKET列是否有有效分组项:
print(f"FECHA唯一值数量:{df['FECHA'].nunique()}") print(f"TICKET唯一值数量:{df['TICKET'].nunique()}")
如果其中某列没有唯一值,也会导致透视结果异常。
内容的提问来源于stack exchange,提问作者Miguel Iturribarria
相关产品推荐
相关产品推荐

