2017-07-05 6 views
2

データフレームの列の値を別のリストと比較することによって、データフレームからインデックス値を抽出する際に問題が発生します。他のシリーズと比較してデータフレームのインデックス値を見つける

不要な行や列を取り除くためにdropnaを使用し、その後、あなたのリストは、文字列のリストであることを確認してください:

list=[a,b,c,d] 

    data frame 
by comparing list with column X 
    X Y Z 
0 a r t 
1 e t y 
2 c f h 
3 d r t 
4 b g q 
this should return the index values like 

    X 
0 a 
4 b 
2 c 
3 d 
I tried this method 

z=dataframe.loc[(dataframe['X'] == list)] 

答えて

2

あなたはisinを使用する必要があります。

dataframe = pd.DataFrame(columns = ['X','Y','Z']) 
dataframe['X'] = ['a','e','c','d','b'] 
dataframe['Y'] = ['r','t','f','r','g'] 
dataframe['Z'] = ['t','y','h','y','k'] 
mylist = ['a','b','c','d'] 

(質問にあなたのデータフレームを作成する方法をいつも投稿してください、それは速く答えるでしょう)

dataframe[dataframe['X'].isin(mylist)].X 

0 a 
2 c 
3 d 
4 b 
Name: X, dtype: object 
1

あなたはisinを使用する必要があります。

list = ['a','b','c','d'] 
df[df.isin(list)].dropna(how='all').dropna(axis=1) 

それともあなただけの列Xと比較したい場合は

df.X[df.X.isin(list)] 

出力:あなたは要素のリストと比較されているよう

X 
0 a 
2 c 
3 d 
4 b 
関連する問題