xlsx文件的列名未保留在转换后的csvs中

时间:2019-03-25 14:19:30

标签: python pandas csv dataframe xlsx

我正在从多页xlsx文件中获取数据并将数据存储在单独的csv文件中。 xslx中所有工作表的第一行存储在第一csv中,所有工作表的第二行存储在第二csv中,依此类推。为此,我编写了以下有效的代码:

xls = xlrd.open_workbook(r'Smallys ORDER.xlsx', on_demand=True)
df_list = []

names = xls.sheet_names()
#print(names)
#print('-'*80)
names.remove('EVENT')
#print(names)

for i in range(191):
    rows = []
    for name in names:
        count = 0
        prod = pd.read_excel('Smallys ORDER.xlsx', name, index_col=None)
        #print(prod)
        try:
            item = prod.iloc[i]
            print(item)
            rows.append(item)
            #items = item.concat(item)
            #print(items)
            #prod.to_csv(item + '.csv', encoding='utf-8', index=False) 
            #print('-'*80)

        except:
            print('Row finished !!!')


    writer = csv.writer(open('/home/hp/products/' + 'prod['+str(i)+'].csv', 'w'))  
    writer.writerows(rows)  

此代码未在csvs中保留xlsx文件的列名(所有工作表都相同)。

1 个答案:

答案 0 :(得分:2)

使用Object.create(null)时,必须明确地写出列名。使用上一张表中的列名就足够了:

csv.writer