![](/img/trans.png)
[英]pandas: compare string columns from two different dataframes of different sizes
[英]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.