如何从另一个大小不同的数据框中向数据框中添加列

时间:2019-10-19 09:35:14

标签: python pandas dataframe

我有2个数据框,我想从另一个数据框向我的一个数据框添加一个新列 '''

(df1)                            
Id   height  ...                 
12   190
13   180
34   173

。 。

(df2)
Id     amount  ...
12      234
15      256
13      248

。 。

''' 如何为df1添加一列“金额”,其中包含df1的每个ID的值df2。 df1和df2的大小不相等

2 个答案:

答案 0 :(得分:2)

您可以merge Id列上的两个数据框,然后将结果amount列分配给第一个df:

import pandas as pd

df1 = pd.DataFrame(
    {"Id": [12, 13, 34], "height": [1, 2, 3]}
)
df2 = pd.DataFrame(
    {"Id": [12, 15, 13], "amount": [4, 5, 6]}
)

df1["amount"] = df1.merge(df2, on="Id")["amount"]

结果:

>>> print(df1)

   Id  height  amount
0  12       1     4.0
1  13       2     6.0
2  34       3     NaN

答案 1 :(得分:0)

Id ID是索引列,则可以使用更新方法来实现

df1 = pd.DataFrame([[12, 190.0], [13, 180.0], [34, 173.0]], columns=('Id', 'height')).set_index("Id")

df2 = pd.DataFrame([[12, 234.0], [15, 256.0], [13, 248.0]], columns=('Id', 'amount')).set_index("Id")

df1["amount"] = np.nan
df1.update(df2, overwrite=True)
print(df1)

结果

    height  amount
Id                
12   190.0   234.0
13   180.0   248.0
34   173.0     NaN