【问题标题】:getting data from df1 if it doesn't exist in df2如果 df2 中不存在,则从 df1 获取数据
【发布时间】:2021-07-26 16:52:05
【问题描述】:

如果 df2 中不存在数据,我正在尝试从 df1 获取数据,并且 df1 中的 col1 应与 df2 中的 col3 对齐(col2 和 col4 相同)

Df1: 

col1  col2   
2     2      
1     Nan    
Nan   1         

Df2:

col3  col4   
Nan   1      
1     Nan    
Nan   1         


Final_Df:

col1  col2   
2     1      
1     Nan    
Nan   1   

【问题讨论】:

  • 您的 Final_Df 似乎与您的要求不一致:第一行的 col2 已更新为 Df2 的值?

标签: python pandas dataframe


【解决方案1】:

只需使用pandas.DataFrame.update(other)。覆盖参数说明。

覆盖布尔型,默认为真

如何处理重叠键的非 NA 值:

  • True:用其他的值覆盖原始 DataFrame 的值。

  • False:仅更新原始 DataFrame 中为 NA 的值。

请注意,df.update(other) 在匹配列标签上使用来自另一个 DataFrame 的非 NA 值进行就地修改。

df2.update(df1.set_axis(df2.columns, axis=1))
print(df2)

  col3 col4
0    2    2
1    1  Nan
2  Nan    1

【讨论】:

    【解决方案2】:

    使列相同/用 np.NAN 替换 Nan/更新数据框

    df1.columns = df2.columns
    df2 = df2.replace('Nan', np.NAN)
    df2.update(df1, overwrite=False) # will only update the NAN values
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2020-10-13
      • 2020-09-26
      • 1970-01-01
      • 1970-01-01
      • 2021-04-16
      • 2019-03-26
      • 2020-08-04
      相关资源
      最近更新 更多