簡體   English   中英

從不同大小的數據框中復制數據,有條件

[英]Copying data from dataframes of different sizes, with condition

我有 2 個不同大小的數據幀 df1-df2(df2 的行和列比 df1 多)。

 df1 unit rate aa nan cc nan df2 unit date rate type aa 1 100 x1 bb 2 150 x2 cc 3 200 x3 dd 4 250 x4

我正在嘗試將 df2['rate'] 中的值分配給 df1['rate'],在 df1['unit'] == df2['unit'] 的行中。

所需的 output 是

 df1 unit rate aa 100 cc 200

我嘗試了不同的方法:

df1['rate'] = df2.loc[(df2['unit'].reset_index(drop=True) == df1['unit']), 'rate']

給我 ValueError: Can only compare the same-labeled Series objects

df1['rate'] = df2.loc[(df2['unit'].reset_index(drop=True).str == df1['unit'].str), 'rate']

給我假

我認為這是因為這兩個數據框的大小不同。 但是我不明白為什么它應該阻止它進行比較。 我不知道如何從這里開始。

您可以使用“合並”:

dfm = df1.merge(df2, left_on='unit', right_on='unit')
dfm = dfm.drop(columns=['date','type','rate_x'])
dfm = dfm.rename(columns={"rate_y": "rate"})
print(dfm)


  unit  rate
0   aa   100
1   cc   200

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM