簡體   English   中英

有沒有辦法獲取索引元素與列表元素匹配的數據框元素

[英]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_valuesIndex.isin一起使用,此處不需要loc

df[df.index.get_level_values('Index 1').isin(['c', 'a', 'd'])]

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM