Groupby().nth(0) disorder the original dataframe columns and potential bug with sort=False
#### Code Sample, a copy-pastable example if possible
The original data used is too large to display and below I used a sampled toy data to reproduce:
### Data Used:
```python
# original dataframe is sorted by 'id', 'num_sess', 'datatime' with ascending = True:
# ie. data.sort_values(['id' ,'num_sess' ,'datetime'], inplace=True)
# data_base is a fraction of original dataframe data with id =1, 2, 52433:

data_base
```
output:
https://github.com/Chet-Sheng/My-Project/blob/master/data_base.csv

---
### Problem One:  
the groupby().nth() would disorder my columns sequence, making it different from original data frame's column sequence rather than just extract 3 columns as index. 
**Code:**
```python
data_base.groupby(['id','num_sess','product_id_CartStarted'],sort=True).nth(0)
```
**Output:**
https://github.com/Chet-Sheng/My-Project/blob/master/data_groupby_sortTrue.csv

---
### Problem Two:
As you can see from below csv, groupby(, sort=False) output has a row with id = 52433, and I have no idea why id = 52433 would appear after id = 1, given I have already sorted data_base before groupby. Actually that line data completely make no sense, because when I check data_base with id = 52433, num_sess= 4, product_id= 3997899, it never has its cart_firstTime same as groupby output. Looks like data_base.groupby(['id','num_sess','product_id_CartStarted'],sort=False).nth(0) created a row doesn't exist.

The reason that I am using sort=False is that I don't want the product_id to be sorted ascending. data_base was sorted by time and I want the product_id show up by time as well.
**Code**
```python
data_base.groupby(['id','num_sess','product_id_CartStarted'],sort=False).nth(0)
```
**Output:**
https://github.com/Chet-Sheng/My-Project/blob/master/group_by_data_base.csv


