使用for命令在Pandas DF中更改列数据类型

时间:2019-06-09 04:11:04

标签: python-3.x pandas

我想将数据库中几列的数据类型从Int / Float更改为Object。

我正在尝试使用for循环进行此操作。但是数据类型没有改变。

admin option

给定列的数据类型应更改为Object。

1 个答案:

答案 0 :(得分:0)

据我所知DataFrame.astype不处理就地参数。参见https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.DataFrame.astype.html怎么样:

cols = [
  "REGION_RATING_CLIENT",
  "REGION_RATING_CLIENT_W_CITY",
  "REG_REGION_NOT_LIVE_REGION",
  "REG_REGION_NOT_WORK_REGION",
  "LIVE_REGION_NOT_WORK_REGION",
  "REG_CITY_NOT_LIVE_CITY",
  "REG_CITY_NOT_WORK_CITY",
  "LIVE_CITY_NOT_WORK_CITY"
]

df[cols] = df[cols].astype(object)

考虑以下示例:

import pandas as pd

df = pd.DataFrame({
    'A': [1,2],
    'B': [1.2,3.4]
})

print(df.dtypes)

df[['A','B']] = df[['A','B']].astype(object)

print(df.dtypes)

返回:

A      int64
B    float64
dtype: object
A    object
B    object
dtype: object