我有两个数据框:
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
B
在uuid
的每个A
中包含一行。
我想将B
的列添加到A
具有相同值的uuid
。
例如,我想将brand
和city
添加到A
以匹配uuids
编辑:基本上B
是uuid
的{{1}}的详细说明,我想合并两个数据集,以使{ A
中的{1}}
答案 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
列中没有重复值的情况下有效。