簡體   English   中英

如何用pandas中的其他數據幀的值提取一個數據幀的值?

[英]How to extract values of one dataframe with values of other dataframe in pandas?

假設您創建了下一個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中有一個函數,允許我非常有效地執行此操作。

謝謝你的幫助...

首先在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']]獲得預期的輸出

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM