Pandas 数据类型转换的几个小技巧

利用 Pandas 的一些辅助函数进行类型转换

Pandas 的 astype()函数和复杂的自定函数之间有一个中间段,那就是 Pandas 的一些辅助函数。这些辅助函数对于某些特定数据类型的转换非常有用 ( 如 to_numeric()、to_datetime())。
所属组数据列中包含一个非数值,用 astype()转换出现了错误,然而用 to_numeric() 函数处理就优雅很多。

  pd.to_numeric(data['con'], errors='coerce').fillna(0)

非数值被替换成0.0了,当然这个填充值是可以选择的

Pandas 中的 to_datetime() 函数可以把单独的 year、month、day 三列合并成一个单独的时间戳。

pd.to_datetime(data[['day', 'month', 'year']])

完成数据列的替换

data['new_data'] = pd.to_datetime(data[['day', 'month', 'year']]) #新产生的一列数据
data['con'] = pd.to_numeric(data['所属组'], errors='coerce').fillna(0)

其实在读取数据时就对数据类型进行转换,一步到位

import pandas sa pd
new_data = pd.read_csv("data.csv",
converters={
'name': str,
'yaer_1': convert_currency,  # 年份
'yaer_2': convert_currency,  # 年份
'per': convert_percent,  # 百分率
'type': lambda x: pd.to_numeric(x, errors='coerce'),
'state': lambda x: np.where(x == "Y", True, False)
},
encoding='gbk',
idnex = False)