final_month = pd.Timestamp('2018-02-01')
df_final_month = df[df['week'] >= final_month]
df_final_month.iloc[:, 1:].sum().argmax()
index = df.set_index('week')
index['storeC'].argmin()
上面的代码是正确的,我只是不完全理解它是如何在里面工作的。我有一些问题:
1.类型(周)是datetime,将final_month设置为Timestamp的原因是datetime与Timestamp几乎相同,它们在Python中相互识别?
2.关于argmax()和argmin(),对于df_final_month.iloc [:,1:]。sum()。argmax(),我删除了sum()并试着像df_final_month.iloc [:, 1:]。argmax(),它返回
`AttributeError: 'DataFrame' object has no attribute 'argmax'`
为什么?为什么第二个代码不需要max()或者什么来调用argmin(),使用argmin()/ argmax()的要求是什么?
请解释python或pandas如何处理这些数据的细节,越详细越好。
谢谢!
我是Python的新手。
答案 0 :(得分:1)
- 时间戳几乎与日期时间相同吗?
醇>
以下是pandas
文档本身的引用:
TimeStamp是大熊猫相当于python的日期时间,并且在大多数情况下可以与它互换
事实上,如果您查看pandas
的源代码,您会看到Timestamp
actually inherits from datetime。以下是检查这些陈述是否正确的代码:
dt = datetime.datetime(2018, 1, 1)
ts = pd.Timestamp('2018-01-01')
dt == ts # True
isinstance(ts, datetime.datetime) # True
- 为什么在不调用
醇>argmax
的情况下调用DataFrame上的sum
方法会引发错误?
因为DataFrame对象没有argmax
方法,only Series do。在您的情况下,sum
会返回一个Series实例。