有没有办法从python中另一列中指定的日期中减去年份?

问题描述 投票:0回答:1

今天我遇到了一些挑战。

这是一个示例数据集:

example = {
"a": ['1/1/1954 14:14','2/14/2001 2:00' , '2/15/2002 12:00'],
"b": [1936,1996,1960],
}

#load into df:
example = pd.DataFrame(example)

print(example) 

我想做的是:

example['c'] = example['a'] - example['b']

但是,我遇到了问题:

unsupported operand type(s) for -: 'str' and 'int'

我尝试将字符串转换为整数,但没有成功。

你能给我推荐一些包或方法来处理这个减法吗?我听说过日期时间,但我不确定如何相应地设置“a”列中的日期。

提前谢谢你!

python pandas date datetime subtraction
1个回答
1
投票

将值转换为日期时间并提取年份:

y = pd.to_datetime(example['a']).dt.year
example['c'] = y - example['b']

或者在

/
和空格之间提取长度为4的整数:

y = example['a'].str.extract(r'/(\d{4})\s+', expand=False).astype(int)
example['c'] = y - example['b']
© www.soinside.com 2019 - 2024. All rights reserved.