合并和更新数据框

问题描述 投票:0回答:1

假设我有 2 个数据框,

df1 = pd.DataFrame({'key': ['a', 'A',], 'value': [1, 1,]}) df2 = pd.DataFrame({'key': ['A', 'B'], 'value': [5, 6,]})

数据框具有相同的列,但不同的行。

df1: 核心价值 一个 1 一个1

df2: 核心价值 一个5 B 6

我希望生成的数据框是: df3: 核心价值 一个 1 一个5 B 6

有点像 dict.update()。如果密钥已经存在,则更新新值;否则,添加新键和新值。但我该如何使用数据框呢?

我不想对后缀'_x''_y'做任何事情,因为实际上我有大约2个键列和10多个值列。

如果这个问题太简单,请原谅我。

python dataframe
1个回答
0
投票

您可以通过使用

merge
函数并将
how
参数设置为“outer”来完成此操作,以在
key
列上执行外连接,组合来自两个数据帧的数据

import pandas as pd

df1 = pd.DataFrame({'key': ['a', 'A'], 'value': [1, 1]})
df2 = pd.DataFrame({'key': ['A', 'B'], 'value': [5, 6]})

df3 = pd.merge(df1, df2, on='key', how='outer')

然后,您可以使用

fillna
方法用另一列中的非空值填充 NaN 值,并创建一个包含更新值的新列
value

df3['value'] = df3['value_y'].fillna(df3['value_x'])
df3 = df3[['key', 'value']]
© www.soinside.com 2019 - 2024. All rights reserved.