如何用字典向Pandas DataFrame添加新记录?缺失值处理疑问
解决Pandas添加字典记录时缺失列填充空格的问题
问题场景
当你用字典添加新记录时,如果字典缺少DataFrame的某个列名作为键,添加后对应列会显示空值(NaN),而不是空格,需要把这些空值替换为空格。
方案一:添加后统一填充空值
如果只是要把所有空值替换成空格,可以在添加记录后执行填充操作:
# 添加记录(注意:append已被弃用,推荐用pd.concat,方案二会详述) df = df.append(new_record, ignore_index=True) # 填充所有空值为空格 df.fillna(' ', inplace=True)
如果只想填充特定列的空值,比如只处理Nationality列:
df['Nationality'] = df['Nationality'].fillna(' ')
方案二:添加前补全字典的缺失键(更严谨)
先基于原DataFrame的列名,补全新字典中缺失的键,默认值设为空格,再添加记录,避免后续额外的填充操作:
import pandas as pd # 获取原DataFrame的所有列名 all_cols = df.columns.tolist() # 补全新记录的缺失列,默认填充空格 complete_record = {col: new_record.get(col, ' ') for col in all_cols} # 用pd.concat添加记录(替代已弃用的append) df = pd.concat([df, pd.DataFrame([complete_record])], ignore_index=True)
注意点
Pandas 1.4.0及以上版本中,df.append()方法已被标记为弃用,官方推荐使用pd.concat()来拼接数据,避免后续版本兼容性问题。
内容的提问来源于stack exchange,提问作者Babbara
相关产品推荐
相关产品推荐

