【发布时间】:2017-11-07 16:05:11
【问题描述】:
我正在使用 Pandas 中的功耗数据集,其中包含邮政编码作为一列,但该列的数据类型是原始 CSV 文件中的整数。我想将此列更改为字符串/对象数据类型,这是我到目前为止所做的:
df = pd.read_csv('...kWh_consumption_by_ZIP.csv')
df.head()
生成的数据帧头如下所示:
如上所述,当我检查df.dtypes 时,我看到 ZIP 被列为 int64 数据类型,因此我运行以下代码来覆盖现有系列并将其更改为 object 数据类型:
df['ZIP'] = df.ZIP.astype(object)
当我查看df.ZIP 系列时,一切看起来都不错(至少肉眼看起来不错):
但是当我使用 len 函数检查系列中每一行的长度时:
df.ZIP.str.len()
...结果系列只为每一行返回 NaN(见下面的屏幕截图)。
有人知道为什么会这样吗?提前感谢您的帮助。
【问题讨论】:
-
df.ZIP.astype(str).str.len() -
所以我需要将 ZIP 系列转换为 str 而不是对象?我以为对象和字符串是一回事?
-
@Will 请看我对“为什么”的回答。
-
@你能查到cold的答案吗
-
知道了。谢谢,@Wen。