pandas 读取某一单元格的值_07-Pandas Excel新建/读取/填充(一)

Excel是微软的经典之作,几乎可以满足我们日常工作的所有需求,但是在处理海量数据时,Excel在效率及性能方面就显得很吃力。正因为Pandas在数据处理方面有着独特的优势,所有掌握pandas库处理excel格式的数据就显得十分必要。

目录excel文档新建

读取excel文档

行列操作

空值自动填充

行列函数运算

excel数据排序

excel数据按条件筛选

#    1. 创建excel文件

在jupyter中导入pandas模块,新建一个aaa.xls的excel文件

这里注意以下点:

1> window中使用反斜杠 \不表示目录路径,这里使用正斜杠 /

2> 定义index时,column的名称与定义时保持一致

3> excel文件后缀 .xlsx可能会报错,建议采用 .xls新建excel文件

#    2. 读取excel文件

1> 读取常规的excel数据表,查看文档行列信息读取excel

2> header

数据表sheet头部有空值或者其他无用的数据,通过定义 header 的数值来指定开始读取的行。

header = 2 :表示从数据表sheet的第3行开始读取header

3> 重命名列

(1)将给定的Sheet数据表的杂乱命名进行规范重命名

.columns=[ ‘A’,‘B’,‘C’……]

(2)将默认index替换为 ‘NUMS’列

.set_index('NUMS',inplace)重命名列名

4> 指定 index  读取并存储

在读取 excel 时指定index列,并保存

注意格式:

index_col = ‘column_name’指定index读取并存储

#    3. 行列的操作

1> Series构建DataFrame

Series 以字典{ } 形式传入,则为一列 column 的形式存储

Series 以 列表[  ] 形式传入,则为一行 row 的形式存储Series构建DataFrame

2> 读取有效范围单元格数据

Excel中有空行空列或存在无效数值,在读取数据时可以使用

skiprows= n: 跳过前n行

usecols = "A:N":读取A至N列

来定义读取数据范围值读取有效范围值

#    4. 空值填充替换

1> for循环迭代填充

(1)Excel中有许多NaN空值,使用 for 循环迭代填充

.at[ i ] 进行赋值at[ i ]

(2) float转str

注意NaN默认为float类型,在使用迭代填充后,都以float类型显示。所以要将 ‘ID’ 列以整型 int 显示,我们需要在read_excel时将 dtype指定为 str 类型,以str类型显示。转为str显示

2> 交替填充

将‘InStore’列交替以‘Yes’和‘No’替换NaN,这里使用 if..else 当做表达式来控制填充交替填充控制

3> 日期填充

导入datetime模块,引用 date,timedelta库

(1)按天增加

start_date =date(2020,1,1): 注意括号中日期分割符号为逗号

timedelta(days = i): 这里可以控制按 days 、hours、mins进行增加按天增加

(2)按月增加

月份增加比较麻烦,需要自定义一个计算月份的函数

def add_month(d,delta_m)按月增加

(3)按年增加

在现有的年份上增加,控制月与天不变按年增加

存储前调整Excel文档中的 index 列设置index存储

#    5. 函数计算填充

1> 列与列相乘计算

(1)基本的列与列相乘运算

ListPrice * Discount = Price列与列相乘

(2) 迭代循环实现列与列运算

for循环可以实现单元格与单元格的运算

for i in filename.index:for 迭代相乘

(3) 迭代循环实现指定的行中数据相乘

计算指定范围5-15行的单元格数据运算

for i in range(5,15):指定范围的行数据

2> 每行数据增量

(1) 直接进行列运算

对所有行的某列值全部增加定量值

如:ListPrice的值每行增加3列 + 值 运算

(2) 调用lambda实现

使用 lambda 表达式来实现每行增加3

如:ListPrice的值每行增加3lambda x:x + 3

#    6. 数据排序

1> 指定单列排序

调用 .sort_values()方法对指定的单列进行排序

注意: inplace 与 ascending 的值单列排序

2> 多列多重排序

调用 .sort_values()方法对指定的多列进行排序,如我们分别查看 Worthy 为 No 和 Yes中的价格从高到低排列情况

注意: inplace 与 ascending 的值多重排列

#   7. 数据筛选

例:

筛选出文件中 年龄在 [ 18,30)间,且分数在[ 85,100]的数据

调用 .loc[ ] 方法进行筛选

多重条件筛选

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值