今天我遇到了一些挑战。
这是一个示例数据集:
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”列中的日期。
提前谢谢你!
将值转换为日期时间并提取年份:
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']