赞
踩
在DataFrame进行数据分析时,我们时常会想对DataFrame的所有列进行数据清洗操作,比如转换不同字段的数据类型,但如果DataFrame字段比较多,一列列数据引用进行数据处理显现效率比较低,使用DataFrame.columns方法获取的结果可以观察到列名和数据类型,但是无法直接对得到的结果进行操作。因此本文主要介绍返回DataFrame的列名的不同类型,我们对此进行操作。
创建DataFrame
import pandas as pd
df=pd.DataFrame([1,2,3],[4,5,6],[7,8,9],columns=['ABC'])
df
最常用方法
df.columns
print(type(df.columns))
这种方法获取的结果是可以观察到列名和数据类型,但是无法直接对得到的结果进行操作。
df.columns.values
df.columns.values.tolist()
df.columns.tolist()
[columns for column in df]
list(df.columns.values)
list(df)
list(df.columns)
导入数据
import os
import pandas as pd
import numpy as np
def read_file(filepath):
os.chdir(os.path.dirname(filepath))
return pd.read_csv(os.path.basename(filepath),encoding='utf-8')
file_pos="F:\\python_machine_learing_work\\501_model\\data\\第一次建模用的样本数据\\训练集\\v1_6_feature.csv"
data_pos=read_file(file_pos)
查看数据情况
data_pos.shape
data_pos.dtypes
数据预处理:删除无关变量及字段类型转化。对所有列进行操作,使用"for key in list(data.columns):"。
#删除无关变量 data_pos_1=data_pos.drop(['billing_nbr','start_date','channel_type_desc'],axis = 1) def category_continuous_resolution(data,variable_category): for key in list(data.columns): if key not in variable_category: variable_continuous.append(key) else: continue return variable_continuous #字段类型转化 def feature_type_change(data,variable_category): ''' 字段类型转化 ''' for col_key in list(data.columns): if col_key in variable_category: data[col_key]=data[col_key].astype(eval('object'),copy=False) else: data[col_key]=data[col_key].astype(eval('float'),copy=False) return data #字段按照类型拆分 variable_category=['channel_type_desc_1','payment_method_name_1','data_source'] #分类变量 variable_continuous = [] #连续变量 variable_continuous = category_continuous_resolution(data_pos_1,variable_category) data_pos_2=feature_type_change(data_pos_1,variable_category) data_pos_2.dtypes
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。