数据帧查询中的Python lambda函数
我有一个数据帧,格式如下(不是完整大小): 本质上,我试图将其过滤为介于两个指定日期和类型等于USD和GBP之间的日期。我目前可以对日期筛选器执行此操作,但不能对类型筛选器执行此操作:数据帧查询中的Python lambda函数,python,pandas,dataframe,lambda,Python,Pandas,Dataframe,Lambda,我有一个数据帧,格式如下(不是完整大小): 本质上,我试图将其过滤为介于两个指定日期和类型等于USD和GBP之间的日期。我目前可以对日期筛选器执行此操作,但不能对类型筛选器执行此操作: df = df[(df.Date <= EndDate) & (df.Date >= StartDate)] df=df[(df.Date=StartDate)] 我似乎不知道如何过滤我需要的类型(因为它需要“or”和“not”&”) 此外,我想知道如何在一行中完成这一切。我见过其他人使用
df = df[(df.Date <= EndDate) & (df.Date >= StartDate)]
df=df[(df.Date=StartDate)]
我似乎不知道如何过滤我需要的类型(因为它需要“or”和“not”&”)
此外,我想知道如何在一行中完成这一切。我见过其他人使用lambda做类似的事情,但我不太明白这些是如何工作的
有人可以帮助我查询并解释我如何通过Lambda示例实现相同的查询吗
谢谢我认为您需要添加以下条件: 样本:
StartDate = '2017-01-04'
EndDate = '2017-01-05'
df1 = df[(df.Date <= EndDate) & (df.Date >= StartDate) & (df.Type.isin(['USD','GBP']))]
print (df1)
Date Type T0 T1 T2
0 2017-01-05 GBP 0.001 0.005 0.006
1 2017-01-05 USD 0.001 0.005 0.006
df2 = df.query('@EndDate >= Date >= @StartDate and Type in ["USD", "GBP"]')
print (df2)
Date Type T0 T1 T2
0 2017-01-05 GBP 0.001 0.005 0.006
1 2017-01-05 USD 0.001 0.005 0.006
StartDate='2017-01-04'
结束日期='2017-01-05'
df1=df[(df.Date=StartDate)和(df.Type.isin(['USD','GBP'])]
打印(df1)
日期类型T0 T1 T2
0 2017-01-05英镑0.001 0.005 0.006
1 2017-01-05美元0.001 0.005 0.006
df2=df.query(“@EndDate>=Date>=@StartDate并键入[“USD”,“GBP”]”)
打印(df2)
日期类型T0 T1 T2
0 2017-01-05英镑0.001 0.005 0.006
1 2017-01-05美元0.001 0.005 0.006
Nicequery
solution:)回答得很好。为了获得额外的积分,您能否举例说明如何使用lambda函数来实现这一点你认为通过呼叫进行选择吗?
df1 = df[(df.Date <= EndDate) & (df.Date >= StartDate) & (df.Type.isin(['USD','GBP']))]
df2 = df.query('@EndDate >= Date >= @StartDate and Type in ["USD", "GBP"]')
StartDate = '2017-01-04'
EndDate = '2017-01-05'
df1 = df[(df.Date <= EndDate) & (df.Date >= StartDate) & (df.Type.isin(['USD','GBP']))]
print (df1)
Date Type T0 T1 T2
0 2017-01-05 GBP 0.001 0.005 0.006
1 2017-01-05 USD 0.001 0.005 0.006
df2 = df.query('@EndDate >= Date >= @StartDate and Type in ["USD", "GBP"]')
print (df2)
Date Type T0 T1 T2
0 2017-01-05 GBP 0.001 0.005 0.006
1 2017-01-05 USD 0.001 0.005 0.006