Python Dataframe:我如何执行等效的 vlookup
Python Dataframe: how do I perform vlookup equivalent
这是 df(它是更大 df 的子集)
df = pd.DataFrame({
'Date': ['04/03/2020', '06/04/2020','08/06/2020','12/12/2020'],
'Tval' : [0.01,0.015,-0.023,-0.0005]
})
如果我需要 Tval 来表示“06/04/2020”(我只需要一个日期)。我怎么得到它?我知道 merge 和 join 可用于复制 python 中的 vlookup 函数,但如果它是您要查找的单个值怎么办?执行任务的最佳方式是什么?
在数据框中选择是这样的:
df.loc[df.Date == '06/06/2020', "Tval"]
理解这一点的方法是:
df.Date=='06/06/2020'
Out:
0 False
1 False
2 False
3 False
Name: Date, dtype: bool
生成一系列 True/False 值,显示日期列中的哪些行符合相等性。如果你给一个 DataFrame 这样的系列,它会 select 只输出系列为 True 的行。要了解这一点,请查看您从中得到了什么:
df.loc[df.Date=='06/06/2020']
Out[]:
Date Tval
2 08/06/2020 -0.023
最后,要查看 'Tval' 的值,我们只需执行以下操作:
df.loc[df.Date == '06/06/2020', "Tval"]
Pandas 文档建议对大多数查找使用 loc
或 iloc
:
df = pd.DataFrame({
'Date': ['04/03/2020', '06/04/2020','08/06/2020','12/12/2020'],
'Tval' : [0.01,0.015,-0.023,-0.0005]
})
df.loc[df.Date == '06/04/2020', 'Tval']
括号中表达式的第一部分 df.Date == '06/04/2020'
选择您要查看的行的索引,第二部分指定您要显示的列。
如果您想查看整行的数据,可以re-write df.loc[df.Date == '06/04/2020', : ]
。
这是 df(它是更大 df 的子集)
df = pd.DataFrame({
'Date': ['04/03/2020', '06/04/2020','08/06/2020','12/12/2020'],
'Tval' : [0.01,0.015,-0.023,-0.0005]
})
如果我需要 Tval 来表示“06/04/2020”(我只需要一个日期)。我怎么得到它?我知道 merge 和 join 可用于复制 python 中的 vlookup 函数,但如果它是您要查找的单个值怎么办?执行任务的最佳方式是什么?
在数据框中选择是这样的:
df.loc[df.Date == '06/06/2020', "Tval"]
理解这一点的方法是:
df.Date=='06/06/2020'
Out:
0 False
1 False
2 False
3 False
Name: Date, dtype: bool
生成一系列 True/False 值,显示日期列中的哪些行符合相等性。如果你给一个 DataFrame 这样的系列,它会 select 只输出系列为 True 的行。要了解这一点,请查看您从中得到了什么:
df.loc[df.Date=='06/06/2020']
Out[]:
Date Tval
2 08/06/2020 -0.023
最后,要查看 'Tval' 的值,我们只需执行以下操作:
df.loc[df.Date == '06/06/2020', "Tval"]
Pandas 文档建议对大多数查找使用 loc
或 iloc
:
df = pd.DataFrame({
'Date': ['04/03/2020', '06/04/2020','08/06/2020','12/12/2020'],
'Tval' : [0.01,0.015,-0.023,-0.0005]
})
df.loc[df.Date == '06/04/2020', 'Tval']
括号中表达式的第一部分 df.Date == '06/04/2020'
选择您要查看的行的索引,第二部分指定您要显示的列。
如果您想查看整行的数据,可以re-write df.loc[df.Date == '06/04/2020', : ]
。