我正在尝试应用一个简单的函数从pandas数据框中的字符串列中提取月份,其中字符串的格式为m / d / yyyy。
数据框称为数据,日期列称为交易日期,我的新建议月份列我希望调用交易月。
以下工作正常:
data['transaction month']=data['transaction date'].map(lambda x: x[0:x.index('/')])
但是,如果我尝试使用命名函数执行相同的操作,它只返回一个列,其中每个值都为None
def extract_month_from_date(date):
return date[0:date.index('/')]
data['transaction month 2']=data['transaction date'].map(extract_month_from_date)
我盯着代码的时间足够长,以至于我觉得我疯了,
有什么不对答案 0 :(得分:0)
您可以通过pd.Series.dt.month
提取月份:
import pandas as pd
df = pd.DataFrame({'date': ['8/2/2018']})
df['date'] = pd.to_datetime(df['date'])
df['month'] = df['date'].dt.month
# date month
# 0 2018-08-02 8