一、读取不从第一行第一列开始的数据
pd.read_excel('路径',skiprow=3,usecols='C:F')
books=pd.read_excel('路径',skiprows=3,usecols='C:F')#跳过前三行,仅使用C到F列
二、自动填充
查看book['ID']数据类型
print(type(books['ID']))
books['ID'].at[0]=100
books['ID'].at[index] 指定了列和行
(一)填充1-n数字
for i in books.index:
books['ID'].at[i]=i+1
结果:
当一列本来为空时,自动填充时会填充为浮点数
为了便于填充,需要在填充前修改数据类型,利用read_excel()中的参数
read_excel(....dtype={'ID':str,'InStore':str,'Date':str})
books=pd.read_excel('Books.xlsx',skiprows=3,usecols='C:F',dtype={'ID':str})
(二)填充有规律的字符串
book['Instore'].at[i]='Yes'if i%2==0 else 'No'
for i in books.index:
books['Instore'].at[i]='Yes'if i%2==0 else 'No'
结果:
(三)填充日期序列
from datetime import date,timedelta
date函数:date(2018,1,1),date(年,月,日) 用于设定时间格式
1、使用函数timedelta(day=i)
timedelta(day=i)只能对天,分钟,毫秒,小时进行操作
没有month,year
from datetime import date,timedelta
start=date(2018,1,1)
for i in books.index:
books['Date'].at[i]=start+timedelta(day=i)
#增加一天
2、使用函数date(年,月,日)
增加一年
for i in books.index:
books['Date'].at[i]=date(start.year+i,start.month,start.day)
#增加一年
结果:
3、增加一个月
计算月增加的小算法!
def add_month(d,md):#第一个参数date,第二个参数加多少个月
yd=md//12#整除12,结果为整数,yd计算年的增加量
m=d.month+md%12#计算月,结果可能超过12
if m!=12:
yd+=m//12#因为m可能超过12,m//12结果为0或1,如果超过12 m//12为1,再加上一年
m=m%12#计算月的增加量
return date(d.year+yd,m,d.day)
月份增加
for i in books.index:
books['Date'].at[i]=add_month(start,i)
结果:
重新设置索引
books.set_index('ID',inplace=True)
books.set_index('ID',inplace=True)
填充或修改数值的两种方法
1、先获取series,修改值的方法
for i in books.index:
books['Date'].at[i]=add_month(start,i)
2、定位DataFrame一个位置的方法
for i in books.index:
books.at[i,'ID']=i+1
books.at[i,'Instore']='Yes'if i%2==0 else 'No'
books.at[i,'Date']=add_month(start,i)