选择python中的特定日历日期

q43xntqr  于 2021-08-20  发布在  Java
关注(0)|答案(1)|浏览(297)

我正在尝试将一列日期从monthyear格式转换为mm/dd/yyyy,我可以将其作为字符串替换,但需要157行代码才能更改所有数据。我希望能够以mm/dd/yyyy的形式计算月份和年份,并将月份的第二个星期三推出来。可能吗?
我目前正在使用此代码

df['Column']=df['Column'].str.replace("December2009", "12/11/2009")
rqqzpn5f

rqqzpn5f1#

我不知道这方面有什么标准的库工具,但很容易制作自己的,比如:

from datetime import datetime, timedelta
import pandas as pd

test_arr = ['December2009', 'August2012', 'March2015']

def replacer(d):
    # take a datestring of format %B%Y and find the second wednesday 
    dt = datetime.strptime(d, '%B%Y')
    x = 0
    # start at day 1 and increment through until conditions satisfied
    while True:
        s = dt.strftime('%A')
        if s == 'Wednesday':
            x += 1 # if a wednesday found, increment the counter
        if x == 2:
            break # when two wednesdays found then break
        dt += timedelta(days = 1)
    return dt.strftime('%m/%d/%Y')

df = pd.DataFrame(test_arr, columns = ['a'])
df['a'].apply(replacer) # .apply() applies the given python function to each element in the df column

也许其他注解中推荐的日历模块可以使代码看起来更好,但我不熟悉它,因此您可能希望研究改进解决方案

相关问题