gpt4 book ai didi

python - 在 Pandas 的一列中模拟 ' '(单引号)?

转载 作者:行者123 更新时间:2023-11-28 22:11:06 25 4
gpt4 key购买 nike

我需要将日期传递给函数 func

参数是dd-mm-yyyy的形式,当我使用'15-05-2019'作为参数时有效。

必须如何编写代码才能从 Pandas 列中接受日期?

在我的例子中,我将所有日期都存储在 dates 列中,并且我希望有一种可以循环使用的方法,而不是对所有日期单独应用单个刻度。

关于我的问题的一些背景:

df['day'] = df.apply(lambda 行:func('15-05-2019'), axis=1)有效,给我一个显示日期日期的 pandas 列。

如何使用我的 dates 列为所有行自动执行此操作?

示例数据:

Table displaying dummy data with columns for 'dates' and 'day'

下面是函数func:

def func(date):
date = str(date)
d = date[0:2]
m = date[3:5]
y = date[6:]
day = dayofweek(int(d), int(m), int(y))
return day

虽然,这可能不需要,但这是辅助功能。

def dayofweek(d, m, y): 
t = [ 0, 3, 2, 5, 0, 3, 5, 1, 4, 6, 2, 4 ]
y -= m < 3
day = (( y + int(y / 4) - int(y / 100) + int(y / 400) + t[m - 1] + d) % 7)
if day == 1:
return "Monday"
if day == 2:
return "Tuesday"
if day == 3:
return "Wednesday"
if day == 4:
return "Thursday"
if day == 5:
return "Friday"
if day == 6:
return "Saturday"
if day == 7:
return "Sunday"

最佳答案

使用Series.apply :

df['day'] = df['dates'].apply(func)

编辑:您可以将值转换为日期时间,然后调用 Series.dt.day_name ,如果可能的话,一些非日期时间是必要的,添加参数 errors=coerce 将它们转换为 NaT:

rng = pd.date_range('2017-04-03', periods=10).tolist() + [10]
df = pd.DataFrame({'dates': rng})

df['dates'] = pd.to_datetime(df['dates'], errors='coerce')
df['day'] = df['dates'].dt.day_name()
print (df)
dates day
0 2017-04-03 Monday
1 2017-04-04 Tuesday
2 2017-04-05 Wednesday
3 2017-04-06 Thursday
4 2017-04-07 Friday
5 2017-04-08 Saturday
6 2017-04-09 Sunday
7 2017-04-10 Monday
8 2017-04-11 Tuesday
9 2017-04-12 Wednesday
10 NaT NaN

关于python - 在 Pandas 的一列中模拟 ' '(单引号)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56143084/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com