我有两个dataframes:
df1:
ID STORE_ID total_visits_area
10000085 306A 3
10000100 060A 2
10000100 059A 1
df2:
ID STORE_ID_1 STORE_ID_2 ACCOUNT_NAME
05451394 060A 029B wade O'Donnell
10000100 060A 059A Jane Smith
我想在df2
中添加一个2列,其中我匹配df1
中的BH_ID
和STORE_ID
,并引入访问次数,其中如果STORE_ID
匹配STORE_ID_1
中的df2
,则访问将被引入STORE_ID_1_VISITS
输出df:
ID STORE_ID_1 STORE_ID_2 ACCOUNT_NAME STORE_ID_1_VISITS STORE_ID_2_VISITS
05451394 060A 059A wade O'Donnell 2 0
10000100 060A 059A Jane Smith 2 1
我尝试使用np.where,但得到一个ValueError:只能比较具有相同标签的Series对象
任何帮助都将不胜感激
2条答案
按热度按时间tez616oj1#
您需要使用合并功能。类似于:
df_out=pd.merge(df2,df1.rename(columns='total_visits_area':'STORE_ID_1_VISITS'},left_on=['ID','STORE_ID_1'],right_on=['ID','STORE_ID'])
然后在第二列上又一次
df_out=pd.merge(df2,df1.rename(columns='total_visits_area':'STORE_ID_2_VISITS'},left_on=['ID','STORE_ID_2'],right_on=['ID','STORE_ID'])
myss37ts2#
您可以使用Map系列:
输出: