从dataframe字符串列中提取日/年并求和[Python]

从dataframe字符串列中提取日/年并求和[Python],python,Python,我在数据帧中有一个名为“time”的列,它具有字符串格式。我想从该列的每个单元格的字符串中提取年份和日期数字,创建一个新列,其中年份数字乘以365,如果可用的日期数字是根据以下计算添加的。有没有关于如何解决这个问题的建议 非常感谢 有很多方法可以做到这一点 一种方法是 另一种方法是将“时间”分成几列这不是最有效或最稳健的解决方案。下面是一个函数,它可以从时间列中获取一个字符串,并返回输出值 def foo(s): result = 0 l = s.split() for

我在数据帧中有一个名为“time”的列,它具有字符串格式。我想从该列的每个单元格的字符串中提取年份和日期数字,创建一个新列,其中年份数字乘以365,如果可用的日期数字是根据以下计算添加的。有没有关于如何解决这个问题的建议

非常感谢


有很多方法可以做到这一点

一种方法是


另一种方法是将“时间”分成几列

这不是最有效或最稳健的解决方案。下面是一个函数,它可以从
时间
列中获取一个字符串,并返回
输出

def foo(s):
    result = 0
    l = s.split()
    for i, word in enumerate(l):
        if not word.isdigit():
            continue
        # word is number
        if l[i+1] == 'year':  # unit is years
            result += int(word) * 365
        else:  # unit is days
            result += int(word)
    return result

print(foo('5 day'))  # 5
print(foo('2 year'))  # 730
print(foo('3 year 10 day'))  # 1105
或者如果你更喜欢一行

def foo(s):
    return sum(int(word) * (365 if s.split()[i+1] == 'year' else 1) for i, word in enumerate(s.split()) if word.isdigit())