使用pandas库实现多CSV文件协同合作

本文介绍了如何使用Python的pandas库对多个CSV文件进行预处理,包括合并文件(保留第一个文件的标题)、打乱数据顺序和按比例分割数据为训练集和测试集。
摘要由CSDN通过智能技术生成

在进行数据处理的过程中可能会存在数据在多个文件中的问题,可以使用pandas库来对批量文件进行预处理。本文章展示了几种可能会用于多个文件所使用到的操作

1.每个文件都有一个开头,只保留第一个文件的一个开头(即第一行的title),将所有的数据合并到一个新的文件里面。

示例代码如下所示(将1.csv文件和2.csv文件的数据都写到train.csv里面,同时只保留了1.csv里面的title):

str_name = '1.csv'
df = pd.read_csv(str_name)
df.to_csv("train.csv", index=None)
str_name = '2.csv'
with open('train.csv', 'a', newline='') as f:
	df = pd.read_csv(str_name)
    df.to_csv(f, index=None,header=None)

第一个str_name是要读入的数据,然后第三行将代码写入到这个文件里面,第四行是第二个文件,然后将第二个文件写入到train.csv这个文件里面(最后一行的index是表示不需要写入pandas自带的index索引,header就是文件的第一行,表示的是第二个文件我不需要它的第一行,直接从第二行开始读就行了)

2.将文件里的数据进行打乱顺序(第一行的title不变)

import pandas as pd
from sklearn.utils import shuffle
data = pd.read_csv('train.csv', sep=',')
data = shuffle(data)
data.to_csv("train2.csv", index=None,header=True)

调用sklearn库对train.csv文件里的数据进行打乱,然后将数据写入到train2.csv,header=True表示保留了第一行的title

3.将文件进行分割(即我们需要把数据分成两个文件,一个为a,一个为b,同时将第一行的title放到a文件和b文件里面):

csv_reader = csv.reader(open('train2.csv','r'))

for index, rows in enumerate(csv_reader):
    if index ==0:
        print (rows)
        with open('train_use_high3.csv', 'a',newline='') as f:
            new_writer = csv.writer(f)
            new_writer.writerow(rows)
        with open('test_use_high3.csv', 'a',newline='') as f:
            new_writer = csv.writer(f)
            new_writer.writerow(rows)
        continue

    if index <51000:
        with open('train_use_high3.csv', 'a',newline='') as f:
            new_writer = csv.writer(f)
            new_writer.writerow(rows)
    else:
        with open('test_use_high3.csv', 'a',newline='') as f:
            new_writer = csv.writer(f)
            new_writer.writerow(rows)

效果:将第一行的title写入到两个文件里,前51000行的数据写入到train_use_high3.csv里面,后面的数据写入到test_use_high3.csv里面

解释代码不易,点个赞再走吧!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值