1. 程式人生 > >python對CSV檔案做行列變換輸出

python對CSV檔案做行列變換輸出

一組實驗資料生成了幾十個csv檔案,每個檔案只有time和rtt兩個屬性兩列資料,貌似python的csv模組還不支援直接列讀取並操作,還是小蚯蚓,求大蟒蛇指教。。。大笑,所以就通過一個函式,然後“列---->行---->列”實現數十個csv檔案合成一個檔案。初始資料檔案格式如下:

time Chicago.rtt
2.301214948 0.187789
4.414003087 0.300577
6.380719683 0.267294
8.751822975 0.638397
10.39387401 0.280448
12.22757191 0.114146
14.63398825 0.520562
16.45922407 0.345798
18.26771508 0.154289
20.48176423 0.368338
22.52504616 0.41162
24.22290325 0.109477
26.414002 0.300576
28.26130384 0.147878
30.23370582 0.12028
.

.

.

程式碼如下:

# -*- coding: cp936 -*-
#Author:Bangwen Chen August 3.2013
#Description

import os
import csv

def col_selector(table,column_key):
    return [row[column_key] for row in table]#在檔案生成的表中返回指定的列
path = '.'#對當前資料夾進行操作
for file in os.listdir(path):#遍歷資料夾
    if file.endswith('csv'):#限定對當前資料夾中過的CSV檔案進行操作,排除.py檔案也處於這一資料夾帶來的影響
        file_path=os.path.join(path,file)
        print file_path
        with open(file_path,'rb') as f:
            reader = csv.reader(f,delimiter=',')#以逗號問分隔符按列讀出資料
            #for row in reader:
            #    print row[1]
            table = [row for row in reader]
            key_col = col_selector(table,1)#指定不同的列取不同的變數,讀取第1列【從0列開始】
            #print key_col
        output = open('out.csv','ab')
        writer = csv.writer(output)
        writer.writerow(key_col)
        output.close()
with open('out.csv','rb') as f:#將列再變換成行。
    reader1 = csv.reader(f,delimiter=',')
    table1 = [row for row in reader1]
    for var in range(0,149):#要粗糙的手動指出列數
        col = col_selector(table1,var)
        outputdata = open('out_data.csv','ab')
        writer1 = csv.writer(outputdata)
        writer1.writerow(col )
        outputdata.close()
os.remove("out.csv")
print "finish"

部分輸出檔案如下,把rtt全都取出來,然後就可以求max,min,mean..:
Chicago.rtt Pittsburgh..rtt Seattle.rtt Boston.rtt Albuqerque.rtt
0.187789 0.472447 0.317792 0.835349 0.334478
0.300577 0.555146 0.0227494 0.510058 0.498709
0.267294 0.634138 0.329926 0.989946 0.663721
0.638397 0.644219 0.0637105 0.577627 0.0384286
0.280448 0.490288 0.344214 0.895311 0.628769
0.114146 0.8253 0.0985798 0.393868 0.025479
0.520562 0.204488 0.0275966 0.8717 0.210623
0.345798 0.679158 0.311394 0.579088 0.139049
0.154289 0.382447 0.582231 0.623237 0.319478
......

相關推薦

pythonCSV檔案行列變換輸出

一組實驗資料生成了幾十個csv檔案,每個檔案只有time和rtt兩個屬性兩列資料,貌似python的csv模組還不支援直接列讀取並操作,還是小蚯蚓,求大蟒蛇指教。。。,所以就通過一個函式,然後“列---->行---->列”實現數十個csv檔案合成一個檔案。初始資

Pythoncsv檔案讀寫操作

 包括使用csv模組進行檔案讀寫,使用requests模組進行檔案傳送。 def pay_task_by_self(self): global success_writer, fail_writer, cont dir_path = os.path.dirname(_

python csv檔案操作

# scrapy pipline class BazaarPipeline(object): def open_spider(self, spider): self.filename = open("digital.csv", "wb") # 建立一

CSV檔案以及PythonCSV檔案的讀寫

一,什麼是CSV檔案 CSV(Comma-Separated Values,CSV)是逗號分隔符的簡稱,以純文字形式儲存表格資料(可以把純文字理解為字串)。 CSV檔案由任意數目的記錄組成,記錄間以某種換行符分隔;每條記錄由欄位組成,欄位間的分隔符最常見的是逗號或製表符。

python csv檔案的列的內容讀取

以下程式碼測試在python2.7 mac上執行成功 import csv with open('/Users/wangzhao/Downloads/test.csv', 'U') as csvfile:     reader = csv.DictReader(csvfi

Python csv檔案 追加行列

1.csv檔案追加行: #! /usr/bin/env python # -*- coding:utf-8 -*- import sys import csv import os input_path = r'D:\opsdailycheckfile\input_file

Python csv格式檔案的資料處理

# Edit By Python3.6 import os,csv,pandas as pd path = 'C:\\Users\\Desktop\\NBA' filepath = os.chdir(p

[轉載]Python-Pcap檔案進行處理,獲取指定TCP流 https://www.cnblogs.com/sunpudding/p/9538889.html

https://www.cnblogs.com/sunpudding/p/9538889.html   Python-對Pcap檔案進行處理,獲取指定TCP流         通過對TCP/IP協議的學習,本人寫了一個可以實現對PCAP檔

csv檔案資料分組,並用pyecharts 展示。

在處理csv檔案時,會有些資料需要分組展示。比如以下檔案及統計效果: 為了避免重複勞動,把pandas 和 pyecharts 做了個結合。 # coding=UTF-8 from pyecharts import Bar,Scatter,Line from pyecharts

python爬蟲系列(4.2-python操作csv檔案)

一、關於csv檔案的介紹 CSV(Comma-Separated Values)即逗號分隔值,可以用Excel開啟檢視。由於是純文字,任何編輯器也都可開啟。與Excel檔案不同,CSV檔案中: 值沒有型別,所有值都是字串 不能指定字型顏色等樣式 不能指定單元格的寬高,不能合併單元格

python 處理CSV檔案

讀取 import csv with open('test.csv','r',encoding='utf8') as csvfile: reader = csv.reader(csvfile) for i in reader: print(i) 寫

Python 寫入CSV檔案

import csv #CSV檔案的讀寫,想和pandas庫一起湊一篇文章 with open('data.csv','a+') as csvfile: fieldnames=['id','name','age'] writer=csv.DictWriter(csvfile,fiel

Python匯入csv檔案生成統計圖片

從來沒有用過Python,以下是複製網上的程式碼,這個在linux環境下面可能會報錯 #coding=UTF-8 #匯入需要的模組 import numpy as np import matplotlib as mpl mpl.use('Agg') import matplotli

python訪問csv檔案

import csv   # 讀取csv檔案方式1 csvFile = open("csvData.csv", "r") reader = csv.reader(csvFile)  # 返回的是迭代型別 data = [] for item in r

Python批量檔案進行VAD檢測和分段

準備: python2.7/3.+   webrtcvad import collections import contextlib import sys import wave import os import webrtcvad def read_wave(p

python關於csv檔案

今天我總結了python相關檔案的儲存,下面介紹這個較為常用的方法。 1.csv檔案的儲存與讀取 第一步:匯入csv模組,import csv 第二步:相關資料的梳理,例如:我把相關的資料用列表儲存下來,然後再進行儲存,例如我下面儲存的資訊: student_list = [] pr

利用Python實現csv檔案的合併和去重

方法一: 這種方法需要引入glob模組 glob模組是最簡單的模組之一,內容非常少。用它可以查詢符合特定規則的檔案路徑名。跟使用windows下的檔案搜尋差不多。查詢檔案只用到三個匹配符:”*”, “?”, “[]”。”*”匹配0個或多個字元;”?”匹配單個字元;”[]”匹配指定範圍內的

pythonCSV檔案寫內容

f = open(r"D:\test.csv", 'w') f.write('1,2,3\n') f.write('4,5,6\n') f.close() 注意:上面例子中的123456這6個數字會分別寫入不同的單元格里,即以逗號作為分隔符將字串內容分開放到不同單元格 上面例子的圖:

pythonCSV 檔案中刪除表頭

假設你有一個枯燥的任務,要刪除幾百 CSV 檔案的第一行。也許你會將它們送入一個自動化的過程,只需要資料,不需要每列頂部的表頭。可以在 Excel 中開啟每個檔案,刪除第一行,並重新儲存該檔案,但這需要幾個小時。讓我們寫一個程式來做這件事。該程式需要開啟當前工作目錄中所有副檔

pythoncsv檔案讀寫及避免出現空行的方法

使用列表生成csv >>> import csv >>> keys=['a','b','c','d'] >>> data=[[1,2,3,4],[5