4

So I have a sample data set like this in csv:-

name    team    date       score
John    A   3/9/12      100
John    B   3/9/12      99
Jane    B   4/9/12      102
Peter   A   9/9/12      103
Josie   C   11/9/12     111
Rachel  A   30/10/12    98
Kate    B   31/10/12    103
David   C   1/11/12     104

Executing the following:-

from pandas.io.parsers import read_csv

df = read_csv("data/Workbook1.csv", index_col=["team", "name"])

df

                 date  score
team name                   
A    John      3/9/12    100
B    John      3/9/12     99
     Jane      4/9/12    102
A    Peter     9/9/12    103
C    Josie    11/9/12    111
A    Rachel  30/10/12     98
B    Kate    31/10/12    103
C    David    1/11/12    104

How do I compress the first index ("team") further so that I don't have duplicate values? To become:-

                 date  score
team name                   
A    John      3/9/12    100
     Peter     9/9/12    103
     Rachel  30/10/12     98
B    John      3/9/12     99
     Jane      4/9/12    102
     Kate    31/10/12    103
C    Josie    11/9/12    111
     David    1/11/12    104
JJJ
  • 1,009
  • 6
  • 19
  • 31
Calvin Cheng
  • 35,640
  • 39
  • 116
  • 167

2 Answers2

4

Figured it out myself.

df = read_csv("data/Workbook1.csv")

df

     name team      date  score
0    John    A    3/9/12    100
1    John    B    3/9/12     99
2    Jane    B    4/9/12    102
3   Peter    A    9/9/12    103
4   Josie    C   11/9/12    111
5  Rachel    A  30/10/12     98
6    Kate    B  31/10/12    103
7   David    C   1/11/12    104

df2 = df.pivot('team', 'name').stack()

df2

                 date  score
team name                   
A    John      3/9/12    100
     Peter     9/9/12    103
     Rachel  30/10/12     98
B    Jane      4/9/12    102
     John      3/9/12     99
     Kate    31/10/12    103
C    David    1/11/12    104
     Josie    11/9/12    111
Calvin Cheng
  • 35,640
  • 39
  • 116
  • 167
1

as an alternative solution, if -for whatever reason- you want to keep the multi-indexing in the read_csv statement.

Same dataset.

df = pd.read_csv("Workbook1.csv", index_col=["team", "name"])
df.stack().unstack()

        date    score
team    name        
A   John    3/9/2012    100
    Peter   9/9/2012    103
    Rachel  30/10/12    98
B   Jane    4/9/2012    102
    John    3/9/2012    99
    Kate    31/10/12    103
C   David   1/11/2012   104
    Josie   11/9/2012   111