Pandas: Extract elements in the given positional indices along an axis of a DataFrame
Pandas Indexing: Exercise-17 with Solution
Write a Pandas program to extract elements in the given positional indices along an axis of a dataframe.
Sample Solution:
Python Code :
import pandas as pd
import numpy as np
sales_arrays = [['sale1', 'sale1', 'sale3', 'sale3', 'sale2', 'sale2', 'sale4', 'sale4'],
['city1', 'city2', 'city1', 'city2', 'city1', 'city2', 'city1', 'city2']]
sales_tuples = list(zip(*sales_arrays))
sales_index = pd.MultiIndex.from_tuples(sales_tuples, names=['sale', 'city'])
print("\nConstruct a Dataframe using the said MultiIndex levels:")
df = pd.DataFrame(np.random.randn(8, 5), index=sales_index)
print(df)
print("\nSelect 1st, 2nd and 3rd row of the said DataFrame:")
positions = [1, 2, 5]
print(df.take([1, 2, 5]))
print("\nTake elements at indices 1 and 2 along the axis 1 (column selection):")
print(df.take([1, 2], axis=1))
print("\nTake elements at indices 4 and 3 using negative integers along the axis 1 (column selection):")
print(df.take([-1, -2], axis=1))
Sample Output:
Construct a Dataframe using the said MultiIndex levels: 0 1 2 3 4 sale city sale1 city1 0.913076 0.354532 -0.802093 0.791970 -0.218581 city2 1.142819 -0.368298 0.215453 0.026137 -0.890050 sale3 city1 0.252533 -0.573312 0.063797 0.785013 -1.089888 city2 -0.289990 0.122610 -1.694256 0.375177 -1.724325 sale2 city1 -0.369298 0.298590 -1.003860 -0.105213 0.157668 city2 1.596571 0.010428 -1.182087 0.247076 -0.602570 sale4 city1 -0.060375 1.958592 -1.628266 -0.081583 -0.364392 city2 0.846199 0.284048 0.799424 -1.486897 0.633890 Select 1st, 2nd and 3rd row of the said DataFrame: 0 1 2 3 4 sale city sale1 city2 1.142819 -0.368298 0.215453 0.026137 -0.890050 sale3 city1 0.252533 -0.573312 0.063797 0.785013 -1.089888 sale2 city2 1.596571 0.010428 -1.182087 0.247076 -0.602570 Take elements at indices 1 and 2 along the axis 1 (column selection): 1 2 sale city sale1 city1 0.354532 -0.802093 city2 -0.368298 0.215453 sale3 city1 -0.573312 0.063797 city2 0.122610 -1.694256 sale2 city1 0.298590 -1.003860 city2 0.010428 -1.182087 sale4 city1 1.958592 -1.628266 city2 0.284048 0.799424 Take elements at indices 4 and 3 using negative integers along the axis 1 (column selection): 4 3 sale city sale1 city1 -0.218581 0.791970 city2 -0.890050 0.026137 sale3 city1 -1.089888 0.785013 city2 -1.724325 0.375177 sale2 city1 0.157668 -0.105213 city2 -0.602570 0.247076 sale4 city1 -0.364392 -0.081583 city2 0.633890 -1.486897
Python Code Editor:
Have another way to solve this solution? Contribute your code (and comments) through Disqus.
Previous: Write a Pandas program to sort a MultiIndex of a DataFrame. Also sort on various levels of index.
Next: Write a Pandas program to get the index of an element of a given Series.What is the difficulty level of this exercise?
Test your Programming skills with w3resource's quiz.
It will be nice if you may share this link in any developer community or anywhere else, from where other developers may find this content. Thanks.
https://w3resource.com/python-exercises/pandas/index/pandas-indexing-exercise-17.php
- Weekly Trends and Language Statistics
- Weekly Trends and Language Statistics