Python 保留原始列名
在重命名dataframe时,我需要保留原始名称。例如Python 保留原始列名,python,pandas,Python,Pandas,在重命名dataframe时,我需要保留原始名称。例如 santandar_data = pd.read_csv(r"train.csv", nrows=40000) santandar_data.shape santandar_data.original_names=santandar_data.columns ndf=santandar_data ndf.original_names Index(['ID', 'var3', 'var15', 'imp_ent_var16_u
santandar_data = pd.read_csv(r"train.csv", nrows=40000)
santandar_data.shape
santandar_data.original_names=santandar_data.columns
ndf=santandar_data
ndf.original_names
Index(['ID', 'var3', 'var15', 'imp_ent_var16_ult1', 'imp_op_var39_comer_ult1',
'imp_op_var39_comer_ult3', 'imp_op_var40_comer_ult1',
'imp_op_var40_comer_ult3', 'imp_op_var40_efect_ult1',
'imp_op_var40_efect_ult3',
...
'saldo_medio_var33_hace2', 'saldo_medio_var33_hace3',
'saldo_medio_var33_ult1', 'saldo_medio_var33_ult3',
'saldo_medio_var44_hace2', 'saldo_medio_var44_hace3',
'saldo_medio_var44_ult1', 'saldo_medio_var44_ult3', 'var38', 'TARGET'],
dtype='object', length=371)
ndf dataframe对象具有一个正确工作的属性“原始名称”。但是当我使用clean_names函数时,我没有得到这个功能
df=santandar_data.clean_names(case_type="upper", remove_special=True).limit_column_characters(3)
df.original_names
AttributeError:“DataFrame”对象没有“原始名称”属性
clean_names函数来自:
更改此函数以将原始列名包含为属性值的最佳方法是什么?几乎可以肯定您的
pyjanitor.clean_names
函数会返回输入数据帧的副本。复制数据帧是非常困难的
但是,实际上,这些原始列标题不属于您的pd.DataFrame
实例,因为您不能直接将它们用于标签或任何其他用途
我的建议是将其存储为单独的变量。如果需要使用数据帧分组,可以使用字典和任何其他元数据:
df_dct = {'df': santandar_data, 'original_names': santandar_data.columns}
df_dct['df'] = df_dct['df'].clean_names(...)
santandar_data.original_names?
clean_names
可能会返回数据帧的副本。我相信在熊猫的某些版本中,属性不一定会被复制。