मेरे पास दो पांडा डेटाफ्रेम हैं

df1 = pd.DataFrame({'A': [1, 3, 5], 'B': [3, 4, 5]})
df2 = pd.DataFrame({'A': [1, 2, 3, 4, 5], 'B': [8, 9, 10, 11, 12], 'C': ['K', 'D', 'E', 'F', 'G']})

दोनों डेटा-फ्रेम का सूचकांक 'ए' है।
df1 के कॉलम 'बी' के मानों को df2 कॉलम 'बी' के मानों से कैसे बदलें?

Df1 का परिणाम:

A  B
1  8 
3  10 
5  12
2
user988575 24 अक्टूबर 2020, 21:40

2 जवाब

सबसे बढ़िया उत्तर

शायद dataframe.isin() वही है जो आप खोज रहे हैं:

df1['B'] = df2[df2['A'].isin(df1['A'])]['B'].values
print(df1)

प्रिंट:

   A   B
0  1   8
1  3  10
2  5  12
1
Andrej Kesely 24 अक्टूबर 2020, 21:55

संभावित समाधानों में से एक:

wrk = df1.set_index('A').B
wrk.update(df2.set_index('A').B)
df1 = wrk.reset_index()

परिणाम है:

   A   B
0  1   8
1  3  10
2  5  12

मर्ज पर आधारित एक अन्य समाधान:

df1 = df1.merge(df2[['A', 'B']], how='left', on='A', suffixes=['_x', ''])\
    .drop(columns=['B_x'])
1
Valdi_Bo 24 अक्टूबर 2020, 22:05