在重命名数据帧时,我需要保留原始名称。例如
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\u names函数时,我没有得到这个功能。你知道吗
df=santandar_data.clean_names(case_type="upper", remove_special=True).limit_column_characters(3)
df.original_names
AttributeError: 'DataFrame' object has no attribute 'original_names'
clean\u names函数来自:
https://github.com/ericmjl/pyjanitor/blob/master/janitor/functions.py
将此函数更改为包含原始列名作为属性值的最佳方法是什么?你知道吗
几乎可以肯定的是,
pyjanitor.clean_names
函数会返回输入数据帧的副本。复制数据帧是known to not copy arbitrary attributes assigned to an instance。你知道吗但是,实际上,这些原始列标题不属于您的
pd.DataFrame
实例,因为您不能将它们直接用于标记或其他任何操作。你知道吗我的建议是存储为一个单独的变量。如果需要使用数据帧进行分组,可以将字典与任何其他元数据一起使用:
相关问题 更多 >
编程相关推荐