Python pandas中的条件列合并

Python pandas中的条件列合并,python,pandas,dataframe,Python,Pandas,Dataframe,我有以下数据集,需要根据以下两个条件,使用id和天数左键将df1与df2连接起来:- 条件1:如果id和天数匹配,则从值列中选择准确值 条件2:如果id匹配,而该id的日期不匹配,则取该id所有天数的平均值 例如:-对于id 34,该值应为3.5(3和4的平均值) df1 df2 尝试: 输出: id Days value 0 12 Sun 1.0 1 34 Mon 3.5 2 56 Tue 6.0 3 78 Wed NaN 尝试: 输出:

我有以下数据集,需要根据以下两个条件,使用id和天数左键将df1与df2连接起来:-

条件1:如果id和天数匹配,则从值列中选择准确值
条件2:如果id匹配,而该id的日期不匹配,则取该id所有天数的平均值

例如:-对于id 34,该值应为3.5(3和4的平均值)

df1

df2

尝试:

输出:

   id Days  value
0  12  Sun    1.0
1  34  Mon    3.5
2  56  Tue    6.0
3  78  Wed    NaN
尝试:

输出:

   id Days  value
0  12  Sun    1.0
1  34  Mon    3.5
2  56  Tue    6.0
3  78  Wed    NaN
    id  Days value
0   12  Sun 1
1   12  Mon 2
2   34  Fri 3
3   34  Sat 4
4   56  Fri 5
5   56  Tue 6
6   56  Wed 7
# condition 1
out = df1.merge(df2, on=['id','Days'], how='left')
 
# condition 2   
out['value'] = out['value'].fillna(
    out['id'].map(df2.groupby('id')['value'].mean())
)
   id Days  value
0  12  Sun    1.0
1  34  Mon    3.5
2  56  Tue    6.0
3  78  Wed    NaN