該問題類似于基于索引 R 組合資料幀中發布的問題
我正在嘗試將一列從 df2(巨大的 df)復制到 df1(小 df),但基于索引。在python中它將是:
df1= df1[df.index.isin(df2.index)]
df1['columnx'] = df2['columny']
df1$name <- 0
df1$name[df1$df1['columnx'] == df2$['columny'] <- df2$name
我試圖用對應于公共索引(columnx \ columny as index col)的df2“name”列的值替換df1中的“name”列,但失敗了。我也試圖找到一個共同的索引
df2.index <- intersect(df1$columnx, df2$columny)
所以 df2 會像 df1 一樣有一個小索引,然后將列從 df2 復制到 df1,但它不起作用
編輯:
DF1
columnx | col.1 | col.2 |...
a | 12345 | etc. |...
b | | |
DF2
columny | col.1 | col.2 | name|
a | 123 | 1234 |abc |
b | | |def |
c | | |ghi |
d | | | |
..
需要的結果:
DF 組合:
columnx | col.1 | col.2 |name
a | 12345 | etc. |abc |
b | | |def |
uj5u.com熱心網友回復:
您可以簡單地使用match():
df1$name <- df2$name[match(df1$columnx, df2$columny)]
或通過公共列合并兩個資料:
dplyr::left_join(df1, df2[c("columny", "name")], by = c("columnx" = "columny"))
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/474768.html
