如何使用Pandas/Python对特定列中的每个项目行使用函数
我在Pandas中有一个简单的数据框,其中一列包含这种格式的日期day month year。 我需要制作另一个列,包含该工作日是哪一天。我编写了这个函数,它可以处理像'12-3-1999'这样的简单参数:如何使用Pandas/Python对特定列中的每个项目行使用函数,python,pandas,dataframe,Python,Pandas,Dataframe,我在Pandas中有一个简单的数据框,其中一列包含这种格式的日期day month year。 我需要制作另一个列,包含该工作日是哪一天。我编写了这个函数,它可以处理像'12-3-1999'这样的简单参数: def convert_date_to_weekday(date_string): # convert string to date object date_object = datetime.strptime(date_string, '%d-%m-%Y').date() #
def convert_date_to_weekday(date_string):
# convert string to date object
date_object = datetime.strptime(date_string, '%d-%m-%Y').date()
# convert date object to weekday string
print(date_object.strftime("%A"))
不幸的是,这不起作用:
df['Weekday'] = convert_date_to_weekday(df['Date'])
如何使其工作?您可以使用,这也是熊猫的推荐方法
def convert_date_to_weekday(date_string):
# convert string to date object
date_object = datetime.strptime(date_string, '%d-%m-%Y').date()
# convert date object to weekday string
# print(date_object.strftime("%A"))
return date_object.strftime("%A")
df['Weekday'] = df['Date'].apply(lambda x: convert_date_to_weekday(x)))
试一试
并在函数中使用return而不是print尝试:
def convert_date_to_weekday(date_string):
# convert string to date object
date_object = datetime.strptime(date_string, '%d-%m-%Y').date()
# convert date object to weekday string
return date_object.strftime("%A")
与应用行一起使用。您可能希望使用pandas数据帧的方法:
df['Weekday'] = df['Date'].apply(convert_date_to_weekday)
但是您的将日期转换为工作日应返回结果,而不是打印。您可以使用该功能
df['Weekday'] = df['Date'].apply(lambda d: convert_date_to_weekday(d))
另外,将您的打印(日期对象.strftime(“%A”)
更改为返回日期对象.strftime(“%A”)
谢谢。成功了。我不知道这个lambda语法)我想在编程方面还有很多事情要做。
df['Weekday'] = df['Date'].apply(lambda d: convert_date_to_weekday(d))