对于csv文件的众多操作。

每间隔xx行提取一行数据,循环xx次

import pandas as pd
df = pd.read_csv('xx.csv',header=None)  # 无表头
a=[]
for j in range(1,1495,1):
    for i in range(j,len(df),14):  ##每隔14行取数据
        a.append(i)
    file = df.iloc[a]
    print(file)
    f = pd.DataFrame(file)
    f.to_csv('dataa/'+ '%d.csv' %j, index=False, encoding='utf_8_sig')
    a.clear()

将很多csv遍历读取,然后合并在一起

'''读取csv,将所有第一列整合到一个csv'''

import re
import os
import pandas as pd

def cut(obj, sec):  # 分割行数
    return [obj[i:i+sec] for i in range(0,len(obj),sec)]

path = 'dataa/' # 放csv文件的路径
files = os.listdir(path)
files_csv = list(filter(lambda x: x[-4:]=='.csv' , files))
#定义一个空列表
data_list = []
#函数re.compile将正则表达式(以字符串书写的)转换为模式对象
num_filter = re.compile(r'\d+')
# 循环读取文件中‘code','close'两列,并添加一列'rank'
for file in  files_csv:
    tmp = pd.read_csv(path + file,header=None)[7]  # 将所有csv的第n列整合到一行
    tmp=tmp.drop(0)             # 跳过表头
    data_list.append(tmp)
# 将读入的数据连接
all_data = pd.concat(data_list)  # 全部数据放入一列里面
# print('abc',all_data)
all_data.to_csv('ra.csv')

将csv文件里面的数据按照固定的行数分割开来

一列变成很多列,转化成列表处理

list = all_data.to_list()  #转化成list
n=492
new_list=[all_data[i:i+n] for i in range(0,len(list),n)]
print(new_list)
# new = cut([all_data], 492)  # 分割
test=pd.DataFrame(columns=None,data=new_list)
# print(len(new))

test.to_csv('over.csv')

你可能感兴趣的:(python实操,pandas,python,开发语言)