【发布时间】:2019-12-16 05:40:49
【问题描述】:
我需要将数据从一个数据帧合并到另一个数据帧。 主要数据框由带有年份、月份和地区变量的调查答案组成。 我需要合并的数据是该特定月份的天气数据。该数据存储在我的第二个气象站数据框中,具有年份变量、每个月的温度平均变量(例如 value1、value2、... value12)和区域变量。
我尝试合并区域和年份的两个数据框,然后我的计划是选择与调查一致的平均温度变量。
df1
---------------------------
year month regions
2002 january Pais Vasco
2002 february Pais Vasco
2003 march Pais Vasco
2002 november Florida
2003 december Florida
... ... ...
---------------------------
df2
-----------------------------------------------
year value1 value2 ... value12 regions
2002 10 11 ... 9 Pais Vasco
2003 11 11 ... 10 Pais Vasco
2004 12 11 ... 10 Pais Vasco
2002 11 11 ... 9 Florida
2003 10 11 ... 9 Florida
-----------------------------------------------
所以在这个例子中,我需要在我的第一次调查观察中从 Pais Vasco 地区和 2002 年获取相应的温度(value1)数据。
当我试图合并时
df_merged = pd.merge(df1, df2, how = "left", on =["regions", "year"])
我只是得到一个数据框,其观察结果比我原来的调查数据框要多。
【问题讨论】:
-
是
'month' in df2.columns?还是以宽格式存储为 value1、value2 等? -
您在
regions上合并,但该列名为region。是不是打错字了? -
这两个表是否 1:1 匹配?每个地区/年份组合应该只有一次天气观测。
-
ifly6:df2 中的月份信息以宽格式存储为 value1、value2 等,所以也许将该信息分成两列会有所帮助? Jordan:两个数据框不匹配,每个地区/年份组合只有一个天气观测值。
-
看看我的回答,你会发现我将
valueX列拆分为月份列,取给定X的任何值。