我需要更改df2
列的数据类型,如df1
列类型详细信息中所述。
示例:age
需要更改为int
,salary
需要更改为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