pandas读取某⼀单元格的值_针对python对Excel合并单元格
操作说明
前⾔
当打开⼀个Excel⼯作簿的时候,并不是每⼀个表都是⼏⾏⼏列的标准形式,譬如它可能出现这样的形式:也就是包含合并单元格的数据,如果以这种表格形式去做接下来的数据处理⼀定会遇到很多问题。
0 1
拆分合并单元格
对于如何拆分合并单元格,⾸先搞清楚⼀个问题合并单元格到底是什么?或者说它是如何储存数据的。⽤pandas库直接读取,答案就会很清晰。
import pandas as pddata = pd.read_excel(r"C:\Users\Administrator\Desktop\合并单元格.xlsx")print(data)
从上⾯结果很清晰的显⽰出,⽆论怎么合并单元格,数据永远储存在合并单元格区域内的最左上⾓,⽽其他单元格都是空值。我们再⽤openpyxl库写成列表的形式再看⼀遍。
import openpyxl as opwb = op.load_workbook(r"C:\Users\Administrator\Desktop\合并单元格.xlsx")ws = wb.worksheets[0]for rows in
ws): data2 = [r.value for r in row] print(data2)
然后再⽤Excel本⾝的友好提醒来看下,根据提醒不难发现不同的数据是不能轻易合并,否则会丢失数据。那么现在的问题就变成了如何将空值解决掉,将表格变成常见的形式。
这⼀点pandas提供了很好的⽀撑,可以使⽤fillna⽅法把缺失值重新编码为其他值,可以选择前置填充(fill forward)或后值填充(fill
backward),前值填充时,将按照前⼀个值填充缺失值。⽽按照后⼀个值填充则为后置填充。本例中选择前置填充来试下效果。(最后⼀列
为全部空值,暂不取。)
import pandas as pddata = pd.read_excel(r"C:\Users\Administrator\Desktop\合并单元格.xlsx")print(data.fillna(method = "ffill").iloc[0:8,0:4])
这样的表格再进⾏后⾯处理就⽅便许多。
0 2
合并单元格
前⾔
当解决了拆分的单元表格,假设处理完成后⼜想将表格某⼀部分合并⼜该如何办呢?很遗憾pandas并未给出很好的解决⽅案。pandas能做
的合并拆分仅限为索引。如果真想实现过程过于复杂,这不是我们想要的。这时候openpyxl库则给出了⼀个很好的答案:merge_cells⽅
法。
python怎么读入excel根据下⾯的结果可以看出,它实施合并的机制和Excel是⼀模⼀样的,并没有什么不同。你要确定⾃⼰合并的数值,确定的值在你要合并单
元格区域内的左上⾓即可。
import openpyxl as opwb = op.load_workbook(r"C:\Users\Administrator\Desktop\合并单元格.xlsx")ws = wb.worksheets[_cells('B2:C3')wb.save(r"C:\Use
end
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论