[英]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
將isin
與dict 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.