4

所以我在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

执行以下操作:-

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

如何进一步压缩第一个索引(“团队”)以使我没有重复值?成为:-

                 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
4

2 回答 2

4

我自己想通了。

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
于 2012-11-07T01:08:22.333 回答
1

作为替代解决方案,如果 - 无论出于何种原因 - 您想在 read_csv 语句中保留多索引。

相同的数据集。

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
于 2015-01-23T21:59:25.563 回答