Python将单列excel文件转换成多列excel文件

文章介绍了如何使用Python的pandas和numpy库处理UCI数据集bank.csv,通过读取csv文件,将数据转换为numpy数组,然后拆分成多个列表,再构建DataFrame并输出到Excel文件,实现了一列csv到多列数据的转换。
摘要由CSDN通过智能技术生成

        亲手实践并记录下一些实用的Python技巧。

        我们从UCI数据库将数据集保存下来时,是csv格式,且文件所有数据都在一列中,如何将1列csv转换为多列,是我们研究的重点,接下来我采用的是UCI数据集bank.csv文件作为演示案例。

        首先,导入工具包。

import pandas as pd
import numpy as np

       其次,读取数据,用的是pd.read_csv工具包,以“;”作为分割依据:

#读取数据
data = pd.read_csv('bank.csv',sep=';')
print(data)

       然后,转换数据,将数据转换为numpy数组,然后写入列表:

#转换数据
data_array = np.array(data)
list_data = data_array.tolist()
print(list_data)

       再然后,将我们所需的字段名建立空列表,这里用age和job作为演示:

#将数据保存在相应列表
age,job,marital,education,default,balance,housing,loan,contact,day,month,duration,campaign,pdays,previous,poutcome = [],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[]
for i in list_data:
    age.append(i[0])
    job.append(i[1])
    marital.append(i[2])
    education.append(i[3])
    default.append(i[4])
    balance.append(i[5])
    housing.append(i[6])
    loan.append(i[7])
    contact.append(i[8])
    day.append(i[9])
    month.append(i[10])
    duration.append(i[11])
    campaign.append(i[12])
    pdays.append(i[13])
    previous.append(i[14])
    poutcome.append(i[15])
print(job)

       最后,将多个列表合成一个列表,将列表转换为DataFrame格式,再写入Excel中,输出‘bank_new.xlsx’或‘bank_new.csv’文件都可以:

(1)罗列式

#输出excel
output_excel = {'age':[],'job':[],'marital':[],'education':[],'default':[],'balance':[],'housing':[],'loan':[],'contact':[],'day':[],'month':[],'duration':[],'campaign':[],'pdays':[],'previous':[],'poutcome':[]}
output_excel['age'] = age
output_excel['job'] = job
output_excel['marital'] = marital
output_excel['education'] = education
output_excel['default'] = default
output_excel['balance'] = balance
output_excel['housing'] = housing
output_excel['loan'] = loan
output_excel['contact'] = contact
output_excel['day'] = day
output_excel['month'] = month
output_excel['duration'] = duration
output_excel['campaign'] = campaign
output_excel['pdays'] = pdays
output_excel['previous'] = previous
output_excel['poutcome'] = poutcome
output = pd.DataFrame(output_excel)
output.to_excel('bank_new.xlsx',index=False)

(2)循环式

def output_all(num):
    i = 0
    while i<num:
        for name in output_excel.keys():
            output_excel[name] = globals()[name]
        i = i+1
    output = pd.DataFrame(output_excel)
    output.to_excel('bank_jian.xlsx',index=False)
output_all(16)

       我们这样就得到了一个多列的Excel表格。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值