Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Pandas: Replacement for .ix

Given the update to pandas 0.20.0 and the deprecation of .ix, I am wondering what the most efficient way to get the same result using the remaining .loc and .iloc. I just answered this question, but the second option (not using .ix) seems inefficient and verbose.

Snippet:

print df.iloc[df.loc[df['cap'].astype(float) > 35].index, :-1]

Is this the proper way to go when using both conditional and index position filtering?

like image 885
elPastor Avatar asked May 08 '17 02:05

elPastor


1 Answers

You can stay in the world of a single loc by getting at the index values you need by slicing that particular index with positions.

df.loc[
    df['cap'].astype(float) > 35,
    df.columns[:-1]
]
like image 112
piRSquared Avatar answered Nov 16 '22 00:11

piRSquared