往北向南 发表于 2020-8-24 17:33:56

求助:关于pandas读取多级表头(合并单元格)数据填充问题

本帖最后由 往北向南 于 2020-8-24 17:33 编辑

1、如下图,原始数据样式,标黄区域为合并单元格的二级表头
https://s1.ax1x.com/2020/08/24/dr6xQx.png

2、需求:表头为1行,红色区域(空值)不能被修改填充
https://s1.ax1x.com/2020/08/24/drchAe.png


3、尝试:数据读取后通过fillna处理,空值信息被改写(原始数据红色区域)

https://s1.ax1x.com/2020/08/24/drgy5Q.png


希望图片能上去{:10_254:}

疾风怪盗 发表于 2020-8-24 17:50:07

你是想要这样的效果么?就表头几个值,完全可以自己修改下,不就不影响下面数据中的nan了
import pandas as pd

a=pd.read_excel('1.xlsx',header=1)
a.columns=['姓名','班级','年龄','语文','数学','英语']
print(a)

往北向南 发表于 2020-8-24 17:55:34

疾风怪盗 发表于 2020-8-24 17:50
你是想要这样的效果么?就表头几个值,完全可以自己修改下,不就不影响下面数据中的nan了

这只是一个示例,其实原始数据表土有68列,这种重新定义感觉有点长。还有刚开始脚本是按照序号的来的,后面表中间茶了一列就不能用啦

疾风怪盗 发表于 2020-8-24 18:22:16

本帖最后由 疾风怪盗 于 2020-8-24 18:25 编辑

往北向南 发表于 2020-8-24 17:55
这只是一个示例,其实原始数据表土有68列,这种重新定义感觉有点长。还有刚开始脚本是按照序号的来的,后 ...

import pandas as pd

a=pd.read_excel('1.xlsx',header=None)
#a.columns=['姓名','班级','年龄','语文','数学','英语']
a.loc=a.loc.fillna(method='ffill')
a.loc=a.loc.fillna(method='ffill')
print(a)


那这样呢?

往北向南 发表于 2020-8-25 14:24:00

疾风怪盗 发表于 2020-8-24 18:22
那这样呢?

感谢,此方法可行,指定行范围进行填充
a.loc=a.loc.fillna(method='ffill')
https://s1.ax1x.com/2020/08/25/dcu2Fg.png
页: [1]
查看完整版本: 求助:关于pandas读取多级表头(合并单元格)数据填充问题