繁体   English   中英

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

[英]Replacing rows of original DataFrame with modified .copy() rows: Merging .copy() results with Original DataFrame

我使用.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”。

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM