首页 > 解决方案 > 年度数据的两个数据框如何在年份之间找到

问题描述

我有一个python问题

df_2021 = pd.DataFrame([(10,20),(30,250),(50,60)], columns=['Toronto','Hamilton'])
df_2026 = pd.DataFrame([(100,200),(300,400),(500,600)], columns=['Toronto','Hamilton'])

我有两个这样的数据框。我试图找到中间年份的值,即(2022 年、2023 年、2024 年、2025 年)。我必须报告年度数字,所以这些必须是整数。

我怎样才能有效地推断这一点,没有舍入错误并保持 int

标签: pythonpandasnumpylambda

解决方案


np.linspace直接这样做

>>> np.linspace(df_2021, df_2026, 6) # 6 because we have 6 years

array([[[ 10.,  20.],
        [ 30., 250.],
        [ 50.,  60.]],

       [[ 28.,  56.],
        [ 84., 280.],
        [140., 168.]],

       [[ 46.,  92.],
        [138., 310.],
        [230., 276.]],

       [[ 64., 128.],
        [192., 340.],
        [320., 384.]],

       [[ 82., 164.],
        [246., 370.],
        [410., 492.]],

       [[100., 200.],
        [300., 400.],
        [500., 600.]]])

要获取数据框列表,只需

my_dfs = [pd.DataFrame(x, columns=['Toronto','Hamilton']) for x in np.linspace(df_2021, df_2026, 6)]

请注意,linspace仅从 1.16.0 版本开始更新为使用非标量输入


推荐阅读