如何使用来自另一个 df 的值填充熊猫系列?

数据挖掘 熊猫
2022-03-14 05:23:44

我需要帮助弄清楚如何使用来自另一个数据帧的特定值填充一系列一个数据帧。

这是我正在使用的示例:

df1 = pd.DataFrame({'Year':[1910, 1911, 1912], 
                    'CA':[2.406, 2.534, 2.668], 
                    'HI':[0.804, 0.821, 0.832]})

df2 = pd.DataFrame({'State':['CA', 'CA', 'CA', 'HI', 'HI'], 
                    'Year':[1910, 1910, 1911, 1911, 1911]})

df2['Population'] = pd.Series()

*我正在尝试填充 df2['Population'] w/来自 df1 的相应人口(即特定年份的特定州的人口)

我怎样才能做到这一点?

1个回答

这是一个解决方案:

df2['Population'] = df2.apply(lambda x: df1.loc[x['Year'] == df1['Year'], x['State']].reset_index(drop=True), axis=1)

这个想法是对于每一行df2我们使用Year列来告诉我们要访问哪一行df1,然后State选择列。之后我们重置结果的索引以防止 pandas 将列分开。