【发布时间】:2021-09-29 11:53:55
【问题描述】:
我有一个从 Excel 中读取的 DataFrame,其中包含 DateTime 类型的列之一。
sales_data=pandas.read_excel(r'Sample Sales Data.xlsx')
我能够使用 str.extract/lambda 函数从其他列中提取子字符串。但我无法处理“订单日期”列
命令sales_data['Order Date'] 给出以下输出
按照other StackOverflow questions 的建议,我尝试了
sales_data['Order Date'].apply(lambda x:x.str.slice())
我收到一个错误:AttributeError: 'datetime.datetime' object has no attribute 'str' 要检查订单日期列的类型,我尝试了
sales_data['Order Date'].apply(lambda x:type(x))
我得到了类型 datetime.datetime 但是当我尝试日期时间操作时
sales_data['Order Date'].apply(lambda x:x.strftime("m"))
我收到错误:AttributeError: 'int' object has no attribute 'strftime' 我收到了类似的命令错误
sales_data['Order Date'].apply(lambda x:x.dt.month)
请建议一种方法,将月份从日期时间对象中提取到另一列中,而无需遍历 DataFrame。我无法在此列中使用 datetime 或 int 函数,因为它既是 datetime 又是 int 列。
【问题讨论】:
标签: python pandas dataframe datetime lambda