导入pickle文件到Pandas后如何获取列名并新增列追加至原DataFrame
Pandas 大体积Pickle文件加载后列操作解决方案
步骤1:获取全部842列列名
首先确认你加载的文件对象为标准Pandas DataFrame,执行代码验证类型:print(type(你的DataFrame变量名))
若输出为<class 'pandas.core.frame.DataFrame'>,直接执行以下代码即可提取所有列名到列表中:
# 提取列名转为列表格式 col_names = 你的DataFrame变量名.columns.tolist() # 可打印前10条列名验证结果 print(col_names[:10])
如果上述方法获取的列名不符合预期,说明加载Pickle文件时表头被识别为第一行数据,执行以下代码修正后再提取列名:
# 将第一行数据设为列名 你的DataFrame变量名.columns = 你的DataFrame变量名.iloc[0].tolist() # 删除原本作为表头的第一行数据,重置索引 你的DataFrame变量名 = 你的DataFrame变量名[1:].reset_index(drop=True) # 重新提取列名 col_names = 你的DataFrame变量名.columns.tolist()
你之前尝试的column、col等方法无效,是因为Pandas DataFrame的列属性固定为columns,拼写错误、变量名写错都会导致调用失败。
步骤2:使用列名创建新Series
你可以基于列名列表的特征匹配规则生成新列,以下为通用示例:
import pandas as pd # 示例1:直接将列名列表转为Series用于后续处理 col_series = pd.Series(col_names) # 示例2:生成业务逻辑相关的新列,比如统计每行符合特征关键词的列的数量 new_col = 你的DataFrame变量名.apply( lambda x: sum([1 for col in col_names if '特征关键词' in col and pd.notna(x[col])]), axis=1 )
步骤3:将新列追加到原DataFrame
直接通过赋值语法即可完成追加,不会修改原有列的数据:
# 替换括号内的内容为你自己的新列名和创建好的Series对象 你的DataFrame变量名['自定义新列名'] = new_col
执行完成后运行print(你的DataFrame变量名.shape),若输出的列数从842变为843,说明新列追加成功。
内容的提问来源于stack exchange,提问作者Nobinwanne
相关产品推荐
相关产品推荐

