pandas写入读取csv文件

1.利用Pandas把列表数据写入csv文件,具体操作封装成函数,然后直接调用就行。

def insert_csv(datas):
    df = pd.DataFrame(datas)
    file_name = 'hello'
    df.to_csv('{}.csv'.format(file_name),encoding = "GBK")

      注释:有可能出现写入csv文件,出现编码错误写入不了,可以修改编码:改成 gb18030编码。

               如果要插入的数据字段不确定,可以进行追加的方式进行插入,追加插入必须要添加一个参数  modal = “a”#获取csv

          df.to_csv("my.csv", mode='a',header=False)

2. pandas 读取的表格内容
df = pd.read_csv('xxy_yang.csv', encoding="gbk")
lines = list()
#read_result:输出是一个索引,然后根据索引查出数据
read_result = df.reset_index().T.to_dict()
for _index in read_result:

#获取每行的数据
  lines.append(read_result[_index])
# 多进程加多线线程封装写入表格
from concurrent.futures import ThreadPoolExecutor, as_completed
from multiprocessing import Process, Manager
# 返回的manager对象控制了一个server进程,此进程包含的python对象可以被其他的进程通过proxies来访问。从而达到多进程间数据通信且安全
def thread_run(_tuple):
   line_list = _tuple
   #开启进程,利用的是ThreadPoolExecutor,开启100个线程
   executor = ThreadPoolExecutor(max_workers=100)
   all_tasks = [executor.submit(do_data_process, line) for line in line_list]
   data_list = list()
   for future in as_completed(all_tasks):
   result_dict = future.result()
   if result_dict:
     data_list.append(result_dict)

   #这边可以插入数据

   df = pd.DataFRame(data_list)

   df.to_csv("xx.csv")
def do_data_process():
  #该功能是数据处理好后返回数据

  pass

# 创建进程6个进程
if __name__  == '__main__':

data_list = []

pool = list()

with Manager() as mess:

  # 创建进程6个进程

   for start_num in range(6):

     p = Process(target=tread_run, args=((data_list[start_num::6]),))

     p.start()

     pool.append(p)

    for p in pool:

      p.join()

 

猜你喜欢

转载自blog.csdn.net/xxy_yang/article/details/81221056