我需要使用不同的函数来处理数字列和字符串列。我现在正在做的事情真的很愚蠢:
allc = list((agg.loc[:, (agg.dtypes==np.float64)|(agg.dtypes==np.int)]).columns) for y in allc: treat_numeric(agg[y]) allc = list((agg.loc[:, (agg.dtypes!=np.float64)&(agg.dtypes!=np.int)]).columns) for y in allc: treat_str(agg[y])
有没有更优雅的方法来做到这一点?例如
for y in agg.columns: if(dtype(agg[y]) == 'string'): treat_str(agg[y]) elif(dtype(agg[y]) != 'string'): treat_numeric(agg[y])
您可以使用以下命令访问列的数据类型dtype:
dtype
for y in agg.columns: if(agg[y].dtype == np.float64 or agg[y].dtype == np.int64): treat_numeric(agg[y]) else: treat_str(agg[y])