Pandas 数据帧asof()
方法
原文:https://www.studytonight.com/pandas/pandas-dataframe-asof-method
在他的教程中,我们将学习 PandasDataFrame.asof()
的方法。它返回最后一行或前几行,在此之前没有任何NaNs
。如果子集不是None
,最后一行没有 NaN 只考虑列的子集。如果没有好的值,则返回一个系列的 NaN 值或一个数据帧的一系列 NaN 值。
下图显示了DataFrame.asof()
方法的语法。
句法
DataFrame.asof(where, subset=None)
参数
其中:表示日期或类似数组的日期。返回最后一行的日期。
子集:表示 str 的字符串或数组,默认为无。对于数据帧,如果不是“无”,请仅使用这些列来检查 NaNs。
示例 1:使用DataFrame.asof()
方法获取最后一行
在下面的例子中,DataFrame.asof()
方法返回指定序列的最后几行,第一个值是 NaN,因为指定序列的第一个元素在第一个索引值之前。
import pandas as pd
import numpy as np
s = pd.DataFrame({'A':[1, 2, np.nan, 4],'B':[np.nan,2,np.nan,5.0]}, index=[10, 20, 30, 40])
print(s)
print(s.asof([5,20]))
一旦我们运行该程序,我们将获得以下输出。
A B 10 1.0 NaN 20 2.0 2.0 30 NaN NaN 40 4.0 5.0 T6】A B 5 NaN NaN 20 2.0 2.0
示例 2:获取最后一行时不考虑缺失值
在下面的例子中,DataFrame.asof()
方法返回指定序列的最后几行,即使 NaN 在30
的索引位置。
import pandas as pd
import numpy as np
s = pd.DataFrame({'A':[1, 2, np.nan, 4],'B':[np.nan,2,np.nan,5.0]}, index=[10, 20, 30, 40])
print(s)
print(s.asof([10, 30]))
一旦我们运行该程序,我们将获得以下输出。
A B 10 1.0 NAn 20 2.0 2.0 30 NAn NAn 40 4.0 5.0 A B 10 NAn NAn 30 2.0 2.0
示例 3:使用DataFrame.asof()
方法获取最后一行
下面的例子通过考虑单个列展示了DataFrame.asof()
方法的例子。
import pandas as pd
import numpy as np
s = pd.DataFrame({'A':[1, 2, np.nan, 4],'B':[np.nan,2,np.nan,5.0]}, index=[10, 20, 30, 40])
print(s)
print(s.asof([10,30],subset=['A']))
一旦我们运行该程序,我们将获得以下输出。
A B 10 1.0 NAn 20 2.0 2.0 30 NAn NAn 40 4.0 5.0 A B 10 1.0 NAn 30 2.0 2.0
结论:
在本教程中,我们学习了 PythonPandasDataFrame.asof()
法。我们学习了语法、参数,并通过求解例子获得了数据帧的最后几行。