Python pandas:通过复制将两个具有不同行数的数据帧合并

2024-04-28 09:38:57 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个数据帧,即df,如:

    Name  Subject Score
0    Tom        A    91
1    Bob        B    92
2    Ali        C    93

还有一本字典,比如:

exam_info = {
    "exam_date": "2021-04-01",
    "advisor":   "Jim",
}

我的目标DataFrame是将exam_dateadvisor插入df的每一行,结果如下:

      exam_date advisor Name  Subject Score
0    2021-04-01     Jim  Tom        A    91
1    2021-04-01     Jim  Bob        B    92
2    2021-04-01     Jim  Ali        C    93

我知道以下代码可以工作:

df.insert(0, 'advisor', exam_info['advisor'])
df.insert(0, 'exam_date', exam_info['exam_date'])

但是在真实的项目中,我有许多dfinsert,真实的exam_info字典也很长,因此代码中会有一堆df.insert(..)块,这不是很优雅

我还尝试将exam_info更改为辅助数据帧df_helper,如:

    exam_date   advisor
0  2021-04-01       Jim

然后使用pd.concat([df_helper, df], axis=1),但结果数据帧在第一行中只有exam_dateadvisor,其他行中的相应列都是Nan,如:

      exam_date advisor Name  Subject Score
0    2021-04-01     Jim  Tom        A    91
1           NaN     NaN  Bob        B    92
2           NaN     NaN  Ali        C    93

如果有更优雅的方法来连接两个数据帧,以便用正确的值填充NaN,请给出建议


Tags: 数据nameinfodfdatenanalibob