向值与另一个数据框列匹配的pandas数据框添加列

时间:2019-05-03 07:44:12

标签: python pandas

我有两个数据框:

A =
date,station_uuid,diesel,e5,e10,dieselchange,e5change,e10change
2019-05-01 00:01:07+02,00061511-4c4d-4444-8888-acdc00000001,1.289,1.469,1.439,0,1,0

B = 
uuid,name,brand,street,house_number,post_code,city,latitude,longitude
00060723-0001-4444-8888-acdc00000001,BAGeno Raiffeisen eG,freie tankstelle,Künzelsauer Strasse,7,74653,Ingelfingen ,49.296821594238,9.6613845825195

Buuid的每个A中包含一行。

我想将B的列添加到A具有相同值的uuid

例如,我想将brandcity添加到A以匹配uuids

编辑:基本上Buuid的{​​{1}}的详细说明,我想合并两个数据集,以使{ A中的{1}}

3 个答案:

答案 0 :(得分:1)

使用此简单命令:

let assets = [{
  "photos": [{
    "id": 1,
    "label": "bad-syn.jpg",
    "size": 38284
  }]
}]

function byKey(k) {
  return assets.map(a => a.photos.map(p => p[k]));
}

console.log(byKey('label'));

答案 1 :(得分:1)

使用pd.merge

a = pd.merge(a, b[['uuid', 'brand', 'city']], how='left',
         left_on='station_uuid', right_on='uuid').drop(labels=['uuid'], axis=1)

答案 2 :(得分:0)

merge是执行此操作的好方法,但是,如果要保留数据帧A的索引和顺序,可以使用以下命令:

A[['brand', 'city']] = B.set_index(['uuid'])[['brand', 'city']].reindex(A['station_uuid'])

,这仅在uuid列中没有重复值的情况下有效。