pandas库dataframe中两个日期类型数据列作差提取days天数作为新数据列的实现

一、知识准备

1、pandas中Series和dataframe的区别

Series是带索引的一维数组,含有两个重要属性是:index(索引)和value(数据值)

DataFrame的任意一行或者一列就是一个Series对象。

2、for ... in 结构是可以作为一种列表生成式。

列表、元组、字典等都是列表生成式的可迭代对象,简单说就是指定可以遍历的对象范围,快速生成具有特定规律的列表。

二、代码

# -*- coding: utf-8 -*-
import pandas as pd
#新建测试dataframe
dataframe = pd.DataFrame()
#赋值2个日期类型测试数据列
dataframe['start'] = [pd.Timestamp('2023-03-10'), pd.Timestamp('2023-03-11')]
dataframe['end'] = [pd.Timestamp('2023-03-10'), pd.Timestamp('2023-03-20')]
#构建索引
dataframe['A'] = ['a', 'b']
dataframe=dataframe.set_index(['A'])
#print(dataframe['start'])
#print(dataframe['end'])
#日期作差
ds=pd.Series(delta.days for delta in (dataframe['end'] - dataframe['start']))
ds.index=dataframe.index
#赋值新数据列
dataframe['days']=ds
#ds类型
print(type(ds))
print(dataframe)
#修改指定列指定行的值
dataframe['days'].loc[(dataframe.days == 0)]=30
print(dataframe)
#修改指定列的值
dataframe['days']=dataframe['days'].where(dataframe['days']=='0', 30)
print(dataframe)
#修改指定列的值
print(dataframe[dataframe['days']==30])
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值