用修改后的.copy()行替换原始DataFrame的行:将.copy()结果与原始DataFrame合并

时间:2019-07-11 16:16:02

标签: python pandas dataframe merge jupyter-notebook

我使用.copy()(名为“ df_copy”)截取了一个大型DataFrame(称为“ df”)的一部分,并应用了某些功能来创建新列“ Category”。

但是,我还给了'df'一列叫做'Category',并给该列分配了一些其他值。 “ df_copy”中的所有其他值/列都与“ df”中的它们各自的值/列相同:唯一的区别是“类别”列。

为了理解,

原始数据框架:

  • df是100行3列。
  • df_copy是df中的5行,具有相同的列。

处理后:

  • df是100行,包含4列(新列为“类别”),其中有5行的“类别”列具有“ NaN”
  • df_copy是具有4列的5行,新列是“类别”,其值不在df中。

基本上,我想用df_copy中当前的后处理行替换从df中获取的行(原始df_copy DataFrame中的行)。

我尝试了不同形式的合并:

  • 左合并,不指定'on':最初复制到df_copy的行的Category列的结果为'NA'
  • 右合并,请不要指定'on':与df_copy相同
  • 在df和df_copy之间不变的一列上左合并(例如,“ Number”):每列重复:“ Number_x”,“ Number_y”,“ Category_x”,“ Category_y”。

1 个答案:

答案 0 :(得分:1)

您是否尝试过使用df.where()?

df = df.where(df['Category'].isna(), df_copy)