Python 如何从数据帧中提取数据并与另一个数据帧连接

Python 如何从数据帧中提取数据并与另一个数据帧连接,python,python-3.x,pandas,join,Python,Python 3.x,Pandas,Join,我有两个数据帧df和df1。我想连接这两个数据帧并以不同的方式获得输出 df City Date Wind Temperature London 5/11/2019 14 5 London 6/11/2019 28 6 London 7/11/2019 10 5 Berlin 5/11/2019 23 12 Berlin 6/11/2019 24 12 Berlin 7

我有两个数据帧df和df1。我想连接这两个数据帧并以不同的方式获得输出

df
City    Date        Wind    Temperature
London  5/11/2019   14        5
London  6/11/2019   28        6
London  7/11/2019   10        5
Berlin  5/11/2019   23        12
Berlin  6/11/2019   24        12
Berlin  7/11/2019   16        16
Munich  5/11/2019   12        10
Munich  6/11/2019   33        11
Munich  7/11/2019   44        13
Paris   5/11/2019   27        6
Paris   6/11/2019   16        7
Paris   7/11/2019   14        8
Paris   8/11/2019   10        6

df1
ID     City   Delivery_Date Provider
1456223 London  7/11/2019   Amazon
1456345 London  6/11/2019   Amazon
2345623 Paris   8/11/2019   Walmart
1287456 Paris   7/11/2019   Amazon
4568971 Munich  7/11/2019   Amazon
3456789 Berlin  6/11/2019   Walmart
输出1

ID  City    Delivery_Date   Wind    Temperature
1456223 London  7/11/2019   10        5
1456345 London  6/11/2019   28        6
2345623 Paris   8/11/2019   10        6
1287456 Paris   7/11/2019   14        8
4568971 Munich  7/11/2019   44       13
输出2

此处应显示物品的天气详情,直到达到交货日期

ID  City    Delivery_Date   Wind    Temperature
1456223 London  5/11/2019   14  5
1456223 London  6/11/2019   28  6
1456223 London  7/11/2019   10  5
1287456 Paris   5/11/2019   27  6
1287456 Paris   6/11/2019   16  7
1287456 Paris   7/11/2019   14  8

如何做到这一点。

如您所述,将DF和DF1视为数据帧

import pandas as pd 
output1 = pd.merge(DF1, DF,left_on = ['City','Date'] ,right_on = ['City','Delivery_Date'], how='inner' ) 
res1 = df1.groupby('City').max() [['Delivery_Date']]
result1 = pd.merge(df,res1, on ='City')
output2 = result1 [result1['Date'] <= result1['Delivery_Date']]
将熊猫作为pd导入
output1=pd.merge(DF1,DF,左上=['City','Date'],右上=['City','Delivery'],how='inner')
res1=df1.groupby('City').max()
result1=pd.merge(df,res1,on='City')
output2=result1[result1['Date']您可以使用df.merge

import pandas as pd
df.merge(df1[['City','Delivery_Date','ID']],left_on = ['City','Date'] ,right_on = ['City','Delivery_Date'],how='inner')

这是否回答了您的问题?您能详细说明输出2的逻辑吗?@kirangadhe,我正试图从df提取该位置特定装运id的所有可飞行天气源,这些数据少于交货日期。例如,`1287456的计划交货日期为2018年11月7日。因此,我想显示11月5日、6日、7日的天气详细信息“余烬”的记录。@ashokeapen请看下面,如果它适合的话you@kirangadhe,我还希望根据id进行分组。例如,
2345623您将有4条记录显示11月5日至8日的天气情况,
和'1287456您将有3条记录显示11月5日至7日的天气情况