我一直在使用 Pandas 计算运动员在特定比赛中的年龄,尽管它以 TimeSeries 类型返回。
我现在希望能够根据固定日期绘制年龄(以天为单位),但不知道如何将 TimeSeries 对象转换为整数。接下来我可以尝试什么?
这是数据的形状。
squad_date['mean_age']
2008-08-16 11753 days, 0:00:00
2008-08-23 11760 days, 0:00:00
2008-08-30 11767 days, 0:00:00
2008-09-14 11782 days, 0:00:00
2008-09-20 11788 days, 0:00:00
这是我想要的:
2008-08-16 11753
2008-08-23 11760
2008-08-30 11767
2008-09-14 11782
2008-09-20 11788
最佳答案
对于通过 google 找到这篇文章的人,如果你有 numpy >= 0.7 和 pandas 0.11,这些解决方案将不起作用。什么有效:
squad_date['mean_age'].apply(lambda x: x / np.timedelta64(1,'D'))
Pandas 官方文档在这里可能会令人困惑。他们建议执行“x.item()”,其中 x 已经是一个 timedelta 对象。 x.item() 将从 timedelta 对象中检索作为 int 值的差异。如果那是'ns',你会得到一个带有纳秒数的整数。所以这将给出一个整数除以时间增量错误;直接将 timedeltas 彼此相除确实有效(并将其转换为 Days,如第二部分中的“D”)。
我希望这对将来的人有所帮助!
关于python - 如何将 pandas 中的 TimeSeries 对象转换为整数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15134507/