使用导入的CSV文件,我像这样索引DataFrame ...
rdata.set_index(['race_date', 'track_code', 'race_number', 'horse_name'])
这就是DataFrame的一部分......
race_date track_code race_number horse_name work_date work_track
2007-08-24 BM 8 Count Me Twice 2007-05-31 PLN
Count Me Twice 2007-06-09 PLN
Count Me Twice 2007-06-16 PLN
Count Me Twice 2007-06-23 PLN
Count Me Twice 2007-08-05 PLN
Judge's Choice 2007-06-07 BM
Judge's Choice 2007-06-14 BM
Judge's Choice 2007-07-08 BM
Judge's Choice 2007-08-18 BM
为什么“horse_name”列的分组不像日期,曲目和种族?也许它是设计的,因此我如何通过竞赛来切割这个更大的DataFrame,以获得一个以'horse_name'作为索引的新DataFrame?
答案 0 :(得分:10)
这不是一个错误。这正是它的工作方式。
DataFrame必须显示其数据中的每个项目。因此,如果索引具有一个级别,则该级别将完全展开。如果它有两个级别,第一级将被分组,第二级将完全展开,如果它有树级别,前两个将被分组,第三个将被扩展,依此类推。
所以这就是马名没有分组的原因。如果您按照马名称分组,您将如何查看DataFrame中的所有项目:)
尝试做:
rdata.set_index(['race_date', 'track_code', 'race_number'])
或:
rdata.set_index(['race_date', 'track_code'])
您会看到索引的最后一个级别始终完全展开,以便您可以查看DataFrame中的所有项目。