最终结果Pandas Data Frame需要看起来像这样。
aggregate_FID jurisdiction FID name rate
2217 750 municipal 405 Auburn 0.093
2218 751 municipal 81 Bonney Lake 0.088
2219 752 municipal 405 Auburn 0.093
2220 753 municipal 171 Steilacoom 0.094
2221 754 municipal 235 Lakewood 0.094
2222 755 municipal 176 Fircrest 0.094
2223 750 state 1 Washington 0.065
2224 751 state 1 Washington 0.065
起点是具有这种结构的数据框架。
aggregate_FID jurisdiction FID
2217 750 municipal 405
2218 751 municipal 81
2219 752 municipal 405
2220 753 municipal 171
2221 754 municipal 235
2222 755 municipal 176
2223 750 state 1
2224 751 state 1
...以及我需要使用多个数据框来填充名称和税率字段。
FID name rate jurisdiction
0 1 Waterville 0.082 municipal
1 2 Riverside 0.081 municipal
2 3 Pierce HBZ 0.079 municipal
3 4 Cle Elum 0.080 municipal
4 5 Pacific 0.095 municipal
FID name rate jurisdiction
0 1 Washington 0.065 state
我需要根据jurisdiction
和FID
列匹配后面的数据框,并填充name
和rate
列。我已设法使用...
df_merge = pd.merge(left=df_aggregate, right=df_jurisdiction, how='left', on=['FID', 'jurisdiction'])
...但这仅适用于其中一个表格。不幸的是,我需要这样做只需一个,但多达七个表。这已经过了两天多的痛苦。如果我的问题不够清楚,请随时要求更多说明,并提前感谢您的帮助。
答案 0 :(得分:3)
您可以先连接所有辖区表,然后使用merge
。它看起来像这样。
j_all = pd.concat([j1, j2, j3, j4, j5, j6, j7])
df_merge = pd.merge(left=df_aggregate, right=j_all, how='left', on=['FID', 'jurisdiction'])