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

7lrncoxx  于 2023-03-11  发布在  Python
关注(0)|答案(1)|浏览(105)

今天我遇到了一些挑战。
这是一个示例数据集:

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'

我试图将字符串转换为整数,但没有成功。
你能给我推荐一些软件包或者方法来处理这个减法吗?我听说过datetime,但是我不确定如何相应地设置“a”列中的日期。
先谢谢你!

j9per5c4

j9per5c41#

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

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

或者提取/和space之间长度为4的整数:

y = example['a'].str.extract(r'/(\d{4})\s+', expand=False).astype(int)
example['c'] = y - example['b']

相关问题