Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Excel 如何压缩第一个具有';无';值,在Python3中?_Excel_Python 3.x_List_Zip_Nonetype - Fatal编程技术网

Excel 如何压缩第一个具有';无';值,在Python3中?

Excel 如何压缩第一个具有';无';值,在Python3中?,excel,python-3.x,list,zip,nonetype,Excel,Python 3.x,List,Zip,Nonetype,我正在迭代excel工作表并将数据加载到dataframe中。其想法是为当前工作表创建临时数据框,并将其附加到最终数据框中,最终数据框在每次迭代后收集所有数据(几个excel文件,内部只有几张工作表) 问题是,这些excel工作表的数据行宽度超过100列,部分列具有多个索引(如月份>天数范围),上面的索引位于合并单元格中 我取消合并单元格,对于合并的单元格,我向前填充合并时的值,并将两个级别的索引的值读取到两个单独的列表:header_lv1和header_lv2 列表的长度相同,但从索引的顶层

我正在迭代excel工作表并将数据加载到dataframe中。其想法是为当前工作表创建临时数据框,并将其附加到最终数据框中,最终数据框在每次迭代后收集所有数据(几个excel文件,内部只有几张工作表)

问题是,这些excel工作表的数据行宽度超过100列,部分列具有多个索引(如月份>天数范围),上面的索引位于合并单元格中

我取消合并单元格,对于合并的单元格,我向前填充合并时的值,并将两个级别的索引的值读取到两个单独的列表:header_lv1和header_lv2

列表的长度相同,但从索引的顶层生成的列表在excel中索引只有一个级别的地方有一些“无”值

我想将这些列表压缩到一个具有“lv1-lv2”值的列表中,以数据帧列的一级索引结束。 目前我有:

header_lv1 = [ws.cell(row=2, column=i).value for i in range(1, sumaInCol + 1)] # read first level of indexes to list
header_lv1.extend(['Typ', 'Typ']) # add two more columns
header_collection.append(header_lv1) # collect header of each opened sheet for comparison

header_lv2 = [ws.cell(row=3, column=i).value for i in range(1, sumaInCol + 1)] # read second level of indexes to list
header_lv2.extend(['Produkt', 'MP/H']) # add two more columns
header_collection.append(header_lv2) # collect header of each opened sheet for comparison

mi = list(zip(header_lv1, header_lv2)) # create list of tuples
ind = pd.Index([e[0] + '-' + e[1] for e in mi]) # want to create list with values made by concatenating tuples to string 
收割台1级 [None,None,None,None,None,None,None,None,None,None,'Sierpień'、'Sierpień'、'Wrzesień'、'Wrzesień'、'Październik'、'Październik'、'Pa dziernik'、'Pa dziernik'、'Pa dziernik'、'Pa dziernik'、'dziernik'、'padziernik'、'padziernik'、'dziernik'、'padziernik'、'dziernik'、'dziernik'、's、'琴琴、斯泰琴琴、斯泰琴琴、斯泰琴琴、斯泰琴琴、斯泰琴琴、卢蒂、卢蒂、卢蒂、马泽克、马尔泽克、马尔泽克、马尔泽克、奎伊琴琴、奎伊琴琴、奎伊琴琴、奎伊琴琴、奎伊琴琴、奎伊琴琴、梅杰、梅杰、泽尔维克、泽尔维克、泽尔维克、泽尔维克、泽尔维克、泽尔维克、利佩克、利佩克、利佩克、利佩克、利佩克、利佩克、利佩克、锡尔比、锡尔比、锡耶琴西拉皮耶尼克、塞皮耶尼克、瓦泽西耶尼克、瓦泽西耶尼克、瓦泽西耶尼克、瓦泽西耶尼克、瓦泽西耶尼克、瓦泽西耶尼克、瓦泽西耶尼克、瓦泽西耶尼克、瓦泽西耶尼克、瓦泽西耶尼克、Listopad、Listopad、Listopad、Listopad、None、None、None、None、None、None、None、None、None、None、None、PODSUMOWANIE W Promotechi、PODSUMOWANIEW TERMINACH Promotiji’、‘PODSUMOWANIE W TERMINACH Promotiji’、‘PODSUMOWANIE W TERMINACH Promotiji’、‘PODSUMOWANIE W TERMINACH Promotiji’、‘PODSUMOWANIE W TERMINACH Promotiji’、‘PODSUMOWANIE W TERMINACH Promotiji’、‘PODSUMOWANIE W TERMINACH Promotiji’、‘PODSUMOWANIE W TERMINACH Promotiji’、‘PODSUMOWANIE W TERMINACH Promotiji’、无、无、无、无、无、无ne,无,无,无,无,'Typ','Typ']

收割台2级 [Miasto]、[Kanałkomunikacji]、[Rodzaj]、[Typ]、[Opis/Nazwa]、[Komunikat]、[DMS]、[Rekrutacja]、[Nowa/stara of erta]、[Osoba Odpowiedziana]、[01-07]、[08-14]、[15-21]、[22-28]、[29-04]、[05-11]、[12-18]、[19-25]、[26-02]、[03-09]、[10-16]、[17-23]、[24-30]、[31-06]、[07]、[07]、[07]、[07-13]、[14-13]、[14-20]、[, '09-15', '16-22', '23-29', '30-05', '06-12', '13-19', '20-26', '27-05', '06-12', '13-19', '20-26', '27-02', '03-09', '10-16', '17-23', '24-30', '01-07', '08-14', '15-21', '22-28', '29-04', '05-11', '12-18', '19-25', '26-02', '03-09', '10-16', '17-23', '24-30', '31-06', '07-13', '14-20', '21-27', '28-03', '04-10', '11-17', '18-24', '25-01', '02-08、09-15、16-22、23-29、30-05、06-12、13-19、20-26、27-03、利兹巴·埃米斯吉、普拉萨-伊洛维奇·莫杜奥沃、瓦托奥、塞纳·杰德诺斯科娃(布鲁托)“干什么”、“干什么”、“干什么”、“干什么”、“干什么”、“干什么”、“干什么”、“干什么”、“干什么”、“干什么”、“干什么”、“干什么”、“干什么”、“干什么”、“干什么”、“干什么”、“干什么”、“干什么”、“干什么”、“干什么”、“干什么”、“干什么”、“干什么”、“干什么”、“干什么”、“干什么”、“干什么”、“干什么”、“干什么”、“干什么”、“干什么”、“干什么”、“干什么”、“干什么”、“干什么”、“干什么”、“干什么”、“干什么”、“干什么”、“干什么”、“干什么”、“干什么”、“干什么”、“干什么”、“干什么”、“干什么”、“干什么”、“干什么”、“干什么”、“干什么”、“干什么”、“干什么”、“干什么”、“干什么”、“干什么”“,”怀斯瓦内“,”兹雷利佐瓦内“,”启动迪亚尼亚“,”实现贾迪亚尼亚“,”科雷奇诺“,”ga:campaign“,”ga:Middle“,”ga:source“,”产品“,”MP/H“]

不幸的是,我不知道如何处理tuple看起来像(None,'Miasto')的情况,例如,它的结尾是这样的:

ind=局部索引([e[1]+'-'+e[0]表示mi中的e]) TypeError:必须是str,而不是NoneType


从Python3.6开始,您可以使用


ind=pd.Index([f”{e[0]}-{e[1]}表示mi中的e])

很抱歉打扰您,我已经通过编写短函数解决了这个问题,该函数对空srting“”不做任何更改:

现在只需将列表传递给该函数,然后再将其转换为元组列表:

header_lv1 = [ws.cell(row=2, column=i).value for i in range(1, sumaInCol + 1)]
header_lv1.extend(['Typ', 'Typ'])
header_collection.append(header_lv1)
checkForNone(header_lv1)

header_lv2 = [ws.cell(row=3, column=i).value for i in range(1, sumaInCol + 1)]
header_lv2.extend(['Produkt', 'MP/H'])
header_collection.append(header_lv2)
checkForNone(header_lv2)
header_lv1 = [ws.cell(row=2, column=i).value for i in range(1, sumaInCol + 1)]
header_lv1.extend(['Typ', 'Typ'])
header_collection.append(header_lv1)
checkForNone(header_lv1)

header_lv2 = [ws.cell(row=3, column=i).value for i in range(1, sumaInCol + 1)]
header_lv2.extend(['Produkt', 'MP/H'])
header_collection.append(header_lv2)
checkForNone(header_lv2)