【问题标题】:How to extract values of one dataframe with values of other dataframe in pandas?如何在熊猫中提取一个数据帧的值与其他数据帧的值?
【发布时间】:2014-03-01 15:23:27
【问题描述】:

假设您创建了下一个 python pandas 数据帧:

In[1]: print df1.to_string()
    ID value
0   1     a
1   2     b
2   3     c
3   4     d


In[2]: print df2.to_string()
      Id_a Id_b
0     1    2        
1     4    2        
2     2    1        
3     3    3        
4     4    4        
5     2    2   

如何创建具有以下值的框架 df_ids_to_values

In[2]: print df_ids_to_values.to_string()
      value_a value_b
0     a       b       
1     d       b       
2     b       a       
3     c       c       
4     d       d       
5     b       b

换句话说,我想用 df1 中的对应值替换 df2 的 id。我曾尝试通过执行 for 循环来执行此操作,但它非常慢,我希望 pandas 中有一个函数可以让我非常有效地执行此操作。

感谢您的帮助...

【问题讨论】:

    标签: python merge pandas dataframe


    【解决方案1】:

    首先在 df1 上设置索引

    df1 = df1.set_index('ID')
    

    然后加入两列

    df = df2.join(df1, on='Id_a')
    df = df.rename(columns = {'value' : 'value_a'})
    
    df = df.join(df1, on='Id_b')
    df = df.rename(columns = {'value' : 'value_b'})
    

    结果:

    > df
    
      Id_a Id_b value_a value_b
    0    1    2       a       b
    1    4    2       d       b
    2    2    1       b       a
    3    3    3       c       c
    4    4    4       d       d
    5    2    2       b       b
    
    [6 rows x 4 columns]
    

    (您可以使用df[['value_a','value_b']] 获得预期的输出)

    【讨论】:

      猜你喜欢
      • 2022-10-23
      • 2020-06-16
      • 2021-12-02
      • 1970-01-01
      • 1970-01-01
      • 2013-12-20
      • 1970-01-01
      • 2021-04-26
      • 1970-01-01
      相关资源
      最近更新 更多