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