[英]Is there a way to get elements of a data frame where the index elements match the elements of a list
假設我們有一個看起來像這樣的數據框
索引 1 | 索引 2 | 價值 |
---|---|---|
一個 | z | 1 |
一個 | z | 2 |
b | 是的 | 1 |
c | 是的 | 1 |
而且我有一個列表list = [c,a,d]
請注意,該列表可能具有不在數據框中的索引值。 有沒有辦法我可以從數據框中訪問與列表匹配的索引的所有行? 所以在這個例子中 output 看起來像這樣:
索引 1 | 索引 2 | 價值 |
---|---|---|
一個 | z | 1 |
一個 | z | 2 |
c | 是的 | 1 |
pd.Series.isin()測試元素是否是列表(或集合)的一部分,它返回 boolean 系列。 您可以將其與接受此類 boolean 系列的pd.DataFrame.loc[]
結合使用。
當列表的元素不是索引的一部分時,這種組合不會引發錯誤,而不是直接使用.loc[list]
。
>>> df.loc[df['Index 1'].isin(['c', 'a', 'd'])]
Index 1 Index 2 Value
0 a z 1
1 a z 2
3 c y 1
將MultiIndex.get_level_values
與Index.isin
一起使用,此處不需要loc
:
df[df.index.get_level_values('Index 1').isin(['c', 'a', 'd'])]
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.