Python xlsx文件的列名不会保留在转换的CSV中
我从多页xlsx文件中提取数据,并将数据存储在单独的csv文件中。xslx中所有工作表的第一行存储在第一个csv中,所有工作表的第二行存储在第二个csv中,依此类推。为此,我编写了以下代码:Python xlsx文件的列名不会保留在转换的CSV中,python,pandas,csv,dataframe,xlsx,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')
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)
此代码不会在csv中保留xlsx文件的列名(所有工作表的列名相同)。使用
csv.writer
时,必须明确写入列名。使用最后一页中的列名就足够了:
writer = csv.writer(open('/home/hp/products/' + 'prod['+str(i)+'].csv', 'w'))
writer.writerow(prod.columns.tolist())
writer.writerows(rows)
当您使用
csv.writer
时,必须明确地写入列名。使用最后一页中的列名就足够了:
writer = csv.writer(open('/home/hp/products/' + 'prod['+str(i)+'].csv', 'w'))
writer.writerow(prod.columns.tolist())
writer.writerows(rows)
csv中不能有工作表名称.csv中没有工作表名称-写入程序在范围内,每个.csv是一组不同的行。不是工作表名称,而是列名。我要在writer=行之前添加一个“print(rows)”,以澄清发生了什么事所有工作表是否共享相同的列名?如果是,写第一张工作表的标题就足够了。csv中不能有工作表名称。csv中没有工作表名称-写入器在范围内,每个.csv是一组不同的行。不是工作表名称,而是列名。我要添加一个“打印(行)”就在writer=行之前,以澄清发生了什么事情所有工作表是否共享相同的列名?如果是,写第一页的标题就足够了