【问题标题】:Comparing two data frames columns and addition of matching values比较两个数据框列并添加匹配值
【发布时间】:2021-11-28 03:45:10
【问题描述】:

我有两个具有相似数据的数据框,我想减去匹配值。示例:

df1:

    Letter  FREQ    Diff
0   A       20      NaN
1   B       12      NaN
2   C       5       NaN 
3   D       4       NaN

df2:

    Letter  FREQ
0   A       19
1   B       11
3   D       2

如果我们可以在“字母”列中找到相同的字母,我想创建一个新列,将两个频率列相减。

预期输出:

df1:

    Letter  FREQ    Diff
0   A       20      1
1   B       12      1
2   C       5       5   
3   D       4       2

我尝试过这样开始,但显然它不起作用

for i in df1.Letter:
    for j in df2.Letter:
        if i == j:
            df1.Difference[j] == (df1.Frequency[i] - df2.Frequency[j])
        else:
            pass

感谢您的帮助!

【问题讨论】:

    标签: python pandas dataframe


    【解决方案1】:

    df.mergefillna 一起使用:

    In [1101]: res = df1.merge(df2, on='Letter', how='outer')
    In [1108]: res['difference'] = (res.Frequency_x - res.Frequency_y).fillna(res.Frequency_x)
    
    In [1110]: res = res.drop('Frequency_y', 1).rename(columns={'Frequency_x': 'Frequency'})
    
    In [1111]: res
    Out[1111]: 
      Letter  Frequency  difference
    0      A         20         1.0
    1      B         12         1.0
    2      C          5         5.0
    3      D          4         2.0
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2019-10-30
      • 1970-01-01
      • 1970-01-01
      • 2018-05-14
      • 1970-01-01
      • 2017-06-21
      • 2021-11-02
      相关资源
      最近更新 更多