Issue
I have the following dataframe:
a = pd.DataFrame({'a': {0: 2, 1:3, 2: 5},'b': {0: 5, 1:3, 2:6}, 'c': {0: 2, 1:1, 2:2}})
a
OUT:
a b c
0 2 5 2
1 7 3 1
2 5 6 2
and i have the following positions:
index_coords = [0, 1]
columns_coords = ['b', 'b']
I would like to get:
b 0 5
b 1 3
I used the following:
a.unstack(-1).loc[[(col, row) for col, row in zip(columns_coords, index_coords)]]
b 0 5
b 1 3
I'm interested in a more straight forward method, something like(if exists):
a.get_by_coords(index_coords, columns_coords)
I want to find out if there exists any.
Solution
I think not exist in npandas, your solution is nice. Also should be simplier:
print (a.unstack(-1).loc[list(zip(columns_coords, index_coords))])
b 0 5
1 3
dtype: int64
Close what you need is select by MultiIndex.from_arrays
:
#swapped columns, index lists
mux = pd.MultiIndex.from_arrays([columns_coords,index_coords])
print (a.unstack(-1).loc[mux])
b 0 5
1 3
dtype: int64
Answered By - jezrael
0 comments:
Post a Comment
Note: Only a member of this blog may post a comment.