Pandas DataFrame.asof(~)
方法返回不包含 NaN
的最后一行。
参数
1.where
| date
或 array-like
或 dates
您要检查的索引值。通常,这将是日期列表。检查下面的示例以进行说明。
2. subset
| string
或array-like
或string
| optional
检查 NaN
时要考虑的列的标签。默认情况下,会考虑所有列。
返回值
如果 where
是标量,则返回 Series
。否则,返回DataFrame
。
警告
源 DataFrame 的索引必须进行排序,否则会引发错误。
例子
基本用法
考虑以下 DataFrame :
df = pd.DataFrame({"A":[3,4,pd.np.NaN,2], "B":[5,6,7,8]}, index=[10,20,30,40])
df
A B
10 3.0 5
20 4.0 6
30 NaN 7
40 2.0 8
请注意 DataFrame 的索引是如何排序的。这是使用该方法的前提条件。
要获取索引值 35
(含)之前没有 NaN
的最后一行:
df.asof(35)
A 4.0
B 6.0
Name: 35, dtype: float64
在这里,我们获得第二行(索引为 20
的行)。索引值为 40
的第 4 行被忽略,因为它超出了 35
的指定索引值。
日期作为索引
考虑以下带有 DatetimeIndex
的 DataFrame :
my_index = pd.DatetimeIndex(["2020-12-24", "2020-12-25", "2020-12-26", "2020-12-27"])
df = pd.DataFrame({"A":[3,4,pd.np.NaN,2], "B":[5,6,7,8]}, index=my_index)
df
A B
2020-12-24 3.0 5
2020-12-25 4.0 6
2020-12-26 NaN 7
2020-12-27 2.0 8
这里,索引值是日期,同样是经过排序的。
要获取两个特定日期(含)之前不带 NaN
的最后一行:
my_where = pd.DatetimeIndex(["2020-12-24", "2020-12-26"])
df.asof(my_where)
A B
2020-12-24 3.0 5.0
2020-12-26 4.0 6.0
请注意以下事项:
-
第二行返回
2020-12-25
的行值。这是因为2020-12-26
的行值包含NaN
,因此下一个候选者是2020-12-25
的行值,其中不包含任何NaN
。 -
返回的DataFrame的新索引值是您在参数中指定的值。
相关用法
- Python Pandas DataFrame asfreq方法用法及代码示例
- Python Pandas DataFrame astype方法用法及代码示例
- Python Pandas DataFrame assign方法用法及代码示例
- Python Pandas DataFrame agg方法用法及代码示例
- Python Pandas DataFrame all方法用法及代码示例
- Python Pandas DataFrame add方法用法及代码示例
- Python Pandas DataFrame any方法用法及代码示例
- Python PySpark DataFrame alias方法用法及代码示例
- Python Pandas DataFrame append方法用法及代码示例
- Python Pandas DataFrame add_prefix方法用法及代码示例
- Python Pandas DataFrame add_suffix方法用法及代码示例
- Python Pandas DataFrame at属性用法及代码示例
- Python Pandas DataFrame axes属性用法及代码示例
- Python Pandas DataFrame align方法用法及代码示例
- Python Pandas DataFrame apply方法用法及代码示例
- Python Pandas DataFrame applymap方法用法及代码示例
- Python Pandas DataFrame at_time方法用法及代码示例
- Python Pandas DataFrame abs方法用法及代码示例
- Python Pandas DataFrame empty属性用法及代码示例
- Python Pandas DataFrame pop方法用法及代码示例
- Python Pandas DataFrame nsmallest方法用法及代码示例
- Python Pandas DataFrame sample方法用法及代码示例
- Python Pandas DataFrame items方法用法及代码示例
- Python Pandas DataFrame max方法用法及代码示例
- Python Pandas DataFrame swaplevel方法用法及代码示例
注:本文由纯净天空筛选整理自Isshin Inada大神的英文原创作品 Pandas DataFrame | asof method。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。