如何通过重新定义panda中有列类型详细信息的其他表来更改列数据类型



我需要更改df2列的数据类型,如df1列类型详细信息中所述。

示例:age需要更改为intsalary需要更改为float

df1:

ColumnName ColumnType  
0 Name       string   
1 Age        int   
2 Emp_Id     string
3 salary     float

df2:

Name   Age  salary  Emp_Id
0   Tom     20  1000    111
1   nick    21  2000    222
2   krish   19  4500    333
3   Tommy   18  6500    444
4   Andy    27  5666    555
5   rick    20  2866    666

df2.dtypes:

Name      object
Age       object
salary    object
Emp_Id    object

这里有一种方法:

for i,r in df1.iterrows():
if r['ColumnType'] == 'string':
r['ColumnType'] = 'str'
df2[r['ColumnName']] = df2[r['ColumnName']].astype(r['ColumnType'])
df2.dtypes

输出:

Name       object
Age         int64
salary    float64
Emp_Id     object
dtype: object

相关内容

最新更新