为 pandas DataFrame 中的每一列分配数据类型 - Python

Kin*_*ord 5 python type-conversion pandas

我想更改可以在空 Pandas 数据框中输入的数据类型。所以我尝试了以下方法,但它不起作用。有人可以给我提示如何解决这个问题吗?

columns=['A', 'B', 'C', 'D', 'E','F']


df = pd.DataFrame(columns=columns)

>>> df
Empty DataFrame
Columns: [A, B, C, D, E, F]
Index: []

df[[0]]=df[[0]].astype(str)
df[[1]]=df[[1]].astype(str)
df[[2]]=df[[2]].astype(int)
df.iloc[:,3:6]=df.iloc[:,3:6].astype(float)
Run Code Online (Sandbox Code Playgroud)

piR*_*red 6

您想用所需的类型构建一个系列或字典,然后使用astype

columns = list('ABCDEF')
df = pd.DataFrame(columns=columns)

dtypes = {k: str for k in columns[:2]}
dtypes.update({columns[2]: int})
dtypes.update({k: float for k in columns[3:]})

df = df.astype(dtypes)

df.dtypes

A     object
B     object
C      int64
D    float64
E    float64
F    float64
dtype: object
Run Code Online (Sandbox Code Playgroud)