See above, df[[“col1”, “col7”]] semantically is very similar to df[“row3”:“row5”], because “row3”:“row5” is kind equivalent to [“row3”, “row4”, “row5”], but the results are very different, one is for column selection and the other is for row selection, which creates some confusion, what do you think?
Hi @skywalker,
Agreed! The shortcuts can be confusing. However, I am not sure whether shortcuts can be created semantically. This is because of the limited options we have when it comes to creating a shortcut. For example, Ctrl + C is a shortcut for Copy. Which makes sense cause C
is the first letter of Copy
. But why paste is Ctrl + V instead of Ctrl + P. First of all P
is reserved for Print. So they must come up with a new key combination. But why did they choose V
? Because it appears next to C
in keyboard and from a usability standpoint, we may want to perform both Copy and Paste in a sequence. So V
makes it easier. Therefore, shortcuts are often created based on usability and intuition.
>>> import seaborn as sns
>>> iris = sns.load_dataset('iris')
In a dataset, we use slice operation mostly when we want to select rows. And the row indices are most often arranged in ascending order. So it is very intuitive to do:
>>> iris[5:10]
sepal_length sepal_width petal_length petal_width species
5 5.4 3.9 1.7 0.4 setosa
6 4.6 3.4 1.4 0.3 setosa
7 5.0 3.4 1.5 0.2 setosa
8 4.4 2.9 1.4 0.2 setosa
9 4.9 3.1 1.5 0.1 setosa
On the other hand, often, we may only want to select a specific list of columns. So this shortcut works well:
>>> iris[['petal_length', 'species']]
petal_length species
0 1.4 setosa
1 1.4 setosa
2 1.3 setosa
3 1.5 setosa
4 1.4 setosa
5 1.7 setosa
6 1.4 setosa
7 1.5 setosa
...
Hope this helps
Best,
Sahil