根据两个数据帧中的条件从数据帧中获取多行

时间:2019-02-22 05:35:22

标签: pandas dataframe

我有两个从excel加载的数据框,这是示例:

df1:
EmpName End date    amount  hours   total quantity
emp1    date1         10    2        20
emp2    date2         20    3        60
emp3    date3         30    4        120
emp4    date4         40    5        200
emp5    date5         50    6        300
emp6    date6         60    7        420
emp7    date7         20    8        160
emp8    date8         30    1        30
emp9    date9         10    2        20
emp10   date10        40    4        160

df2:

EmpName End date    amount  hours   total quantity
emp2    date7       10      2       20
emp2    date4       20      3       60
emp1    date6       30      4       120
emp7    date1       40      5       200
emp4    date8       50      6       300
emp6    date3       60      7       420
emp5    date4       20      8       160
emp8    date5       30      1       30
emp9    date9       10      2       20

从以上两个表中,我需要确定df1.empname是否在df2.empnamedf2.to_date是否在df2.to_date中,如果以上两个条件都成立,则分别获取df2日期,df2金额和df2小时。

我能够使条件成立,但无法获取相同的条件。 代码在这里:

df1['Status'] = np.where(df1['EmpName'].isin (df2['EmpName']) & df1['End date'].isin (df2['End Date']), 'Found', 'Not Found')
df1.head()

我无法合并两个数据集,因为每个数据集大约有27k行。如果我使用内部或外部合并,则总行数大约为674502行×50列,并且在对上面的代码进行了一些修改后,它还为我提供了相同行和列的错误数据集信息

0 个答案:

没有答案