df1并且df2大小不一。將df1(row1, 'Z')值設定為df2(row2, 'C')value 當df1(row1, 'A')等于 時df2(row2, 'B')。
推薦的實施方式是df1['Z'] = df2['C'] if df1['A']==df2['B']什么?
uj5u.com熱心網友回復:
您可以使用numpy.where,將條件作為df1.Aequals傳遞df2.B,對于真正的布林值,請使用df2.Celse take df1.Z:
np.where(df1.A.eq(df2.B), df2.C, df1.Z)
將上述結果分配給 df1.Z
樣本:
import pandas as pd
import numpy as np
df1 = pd.DataFrame({'A': np.random.randint(5,10,20), 'Z': np.random.randint(5,10,20)})
df2 = pd.DataFrame({'C': np.random.randint(5,10,20), 'B': np.random.randint(5,10,20)})
>>>df1.Z.values
Out[41]: array([7, 6, 7, 7, 6, 8, 9, 7, 6, 6, 7, 6, 8, 7, 8, 8, 9, 6, 7, 7])
>>> np.where(df1.A.eq(df2.B), df2.C, df1.Z)
Out[42]: array([7, 6, 6, 7, 6, 8, 9, 7, 6, 9, 7, 8, 8, 7, 8, 8, 9, 6, 7, 7])
uj5u.com熱心網友回復:
我想試一試 map
df1['Z'] = df1['A'].map(dict(zip(df2['B'],df2['C'])))
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/369011.html
下一篇:如何將串列添加到資料框?
