我一直在看一个关于使用Python进行数据分析的在线课程。当我完全按照指导老师做的去做时,我遇到了一个问题。基本上,我从seaborn提取了一个名为“flights”的数据框,设置了索引“year”和“month”,并将其拆开。使用以下代码:
import seaborn
import pandas as pd
flights = seaborn.load_dataset("flights")
flights_indexed = flights.set_index(["year","month"])
flights_unstacked = flights_indexed.unstack()
flights_unstacked
the final data frame is like this
然后,我尝试在末尾添加一个名为“总计”的新列,使用以下代码计算每年的总和:
^{pr2}$但是它引起了一个TypeError: cannot insert an item into a CategoricalIndex that is not already an existing category.
我不熟悉使用pandas进行数据操作。有人能告诉我怎么解决这个问题吗?这是一个版本问题,因为在线教练做了完全相同的事情,但他的工作很好。PS:我使用Python2.7和pandas 0.20.3。在
seaborn.load_dataset
行将month
列检测为category
数据类型。要避免此错误,请将categorical
转换为str
,并在flights = seaborn.load_dataset("flights")
之后加上这一行:要按时间顺序对月份字符串进行排序,首先删除
^{pr2}$flights_unstacked
列的顶层(level=0)(此级别包含单个值passengers
):然后根据按时间顺序预先构建的月份字符串列表重新索引月份字符串列:
最后,可以添加总计列:
结果:
相关问题 更多 >
编程相关推荐