pandas导入excel体会
文章例子的相关数据
import decimal
import numpy as np
file_path =r"C:\"
file_path_name = file_path+"\\"+"文件名"+".xlsx"
dtype的常用格式有
column_name_type = ['str','int64','float64']
dtype={'column_name':column_name_type[0]}
使用方法
使用pandas的converters参数
注意:x要加str(),因为decimal只能处理字符串,不能处理float格式
df = pd.read_excel(file_path_name
,dtype=dtype
,converters={'columns_name_1':lambda x:decimal.Decimal(str(x)) if not np.isnan(x) else np.nan()
,'columns_name_2':'float64'},nrows=10)
引用json格式时,要使用eval将两端的逗号去掉
d_json = json.dumps({"column_name_1":"lambda x:decimal.Decimal(str(x)) if not np.isnan(float(x)) else np.nan()"
,"columns_name_2":"np.float64"})
converters = {}
for d_j_i,d_j_v in json.loads(d_json).items():
converters[d_j_i] = eval(d_j_v)
df1 = pd.read_excel(file_path_name,converters=converters,nrows=10)
print(type(df1.at[0,'column_name_1']))
# 结果:<class 'decimal.Decimal'>
print(type(df1.at[0,'column_name_2']))
# 结果: <<class 'numpy.float64'>