如何使用“应用”方法修改整个列的值

时间:2019-01-23 13:28:04

标签: python pandas apply

我想以mm / dd / yyyy格式获取所有日期

所有日期都存储在“ some_column”中,并且采用混合格式

我尝试使用'apply'方法进行操作

def modify(row):
    m = re.match(r'(\d{1,2})[/-](\d{1,2})[/-](\d{2,4})', row['some_column'])

    if len(m.group(1)) == 1 :
        mm = '0'+ m.group(1)
    else :
        mm = m.group(1)

    if len(m.group(2)) == 1 :
        dd = '0' + m.group(2)
    else :
        dd = m.group(2)

    if len(m.group(3)) == 2 :
        yyyy = '19' + m.group(3)
    else :
        yyyy = m.group(3)

    row['some_column'] = mm+'/'+dd+'/'+yyyy ##<----------here

df.apply(modify, axis = 1)

我知道问题出在哪里..是否可以通过这种方式设置每一行的列值...

或者如果没有其他选择

编辑

我从函数中返回了序列并将其设置为原始数据框

def modify(row):
    m = re.match(r'(\d{1,2})[/-](\d{1,2})[/-](\d{2,4})', row['some_column'])

    if len(m.group(1)) == 1 :
        mm = '0'+ m.group(1)
    else :
        mm = m.group(1)

    if len(m.group(2)) == 1 :
        dd = '0' + m.group(2)
    else :
        dd = m.group(2)

    if len(m.group(3)) == 2 :
        yyyy = '19' + m.group(3)
    else :
        yyyy = m.group(3)

    return mm+'/'+dd+'/'+yyyy

df['some_column'] = df.apply(modify, axis = 1)

0 个答案:

没有答案