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。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。