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)
good