簡體   English   中英

檢查列表中是否存在索引值

[英]Check if a index value exists in a list

我有一個熊貓數據框。 我的數據框作為索引

import pandas as pd
df=pd.DataFrame(data=['a','b','c']).T
df.columns='myvar'
df.set_index(['myvar'])

然后我有一些列表,其中包含一些索引值或不包含任何索引值

list_of_interest_1=['b','c','d','z']
list_of_interest_2=['a']
list_of_interest_3=['duck']

我想在數據框中添加一些布爾列,以標記相應的索引值是否在列表之一中。在示例中:

df=
   wasinlist1  wasinlist2  wasinlist3
a  False      True         False
b  True       False        False
c  True       False        False

isindict comprehension一起使用:

df=pd.DataFrame(['a','b','c'])
df.columns=['myvar']
df = df.set_index(['myvar'])

list_of_interest_1=['b','c','d','z']
list_of_interest_2=['a']
list_of_interest_3=['duck']

d = {'list_of_interest_1':list_of_interest_1, 
    'list_of_interest_2':list_of_interest_2, 
    'list_of_interest_3': list_of_interest_3}

for k, v in d.items():
   df[k] = df.index.isin(v)

df = df.sort_index(axis=1)
print(df)

       list_of_interest_1  list_of_interest_2  list_of_interest_3
myvar                                                            
a                   False                True               False
b                    True               False               False
c                    True               False               False

這似乎是您想要的:

import pandas as pd

df = pd.DataFrame([['a'], ['b'], ['c']], columns=['myvar'])
df = df.set_index('myvar')

list_of_interest_1 = ['b','c','d','z']
list_of_interest_2 = ['a']
list_of_interest_3 = ['duck']

for i, j in enumerate([list_of_interest_1, list_of_interest_2, list_of_interest_3], 1):
    df['InList'+str(i)] = df.index.isin(j)

#       InList1 InList2 InList3
# myvar                        
# a       False    True   False
# b        True   False   False
# c        True   False   False

暫無
暫無

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

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