一、知识准备
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])