假设我有 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多个值列。
如果这个问题太简单,请原谅我。
您可以通过使用
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']]