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

pandas DataFrame值为Object、删首列误删日期列如何解决?

Pandas使用问题解决方案

问题1:打印DataFrame任意值仅获取到Object类型的id值,无法得到实际存储内容

原因

单元格内存储的是未定义字符串表示方法的自定义对象/引用对象,或取数操作误用了返回对象id的方法。

解决步骤

  • 先查看各列数据类型,确认问题列的类型:print(df.dtypes)
  • 取问题列单个元素查看实际类型:print(type(df.iloc[0, 0]))(可替换为对应单元格的行列位置)
  • 对列做类型转换转为可打印的基础类型:
    若需转字符串:df['目标列名'] = df['目标列名'].astype(str)
    若需转数值:df['目标列名'] = pd.to_numeric(df['目标列名'], errors='coerce')
  • 若为读入数据时的格式问题,读入阶段即可指定类型:df = pd.read_csv('文件路径', dtype={'目标列名': str})

问题2:使用df[0]删除第一列时误删了需要保留的日期列

原因

pandas中df[参数]默认是按列名匹配索引,不是按位置索引。出现该问题是因为你要保留的日期列的列名刚好为0,所以df[0]匹配到了日期列而非位置上的第一列。

解决方法

如果需要按位置删除列,使用以下两种安全写法即可:

  1. 用iloc按位置切片保留剩余列(推荐,易读性高):
    df = df.iloc[:, 1:]
    上述代码会保留所有行,从位置索引为1的列(第二列)开始往后取,自动删除位置第一的列。
  2. 用drop方法指定删除位置第一的列:
    df.drop(df.columns[0], axis=1, inplace=True)
    其中df.columns[0]会先获取位置第一的列的实际列名,再执行删除,不会误删其他列。

问题参考截图

问题参考截图

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.12 14:51:03