本文目錄一覽:
- 1、如何將csv文件中的數據寫入python並轉換成矩陣以文件形式輸出
- 2、利用Python如何將數據寫到CSV文件中
- 3、csv文件怎麼打開 使用Python讀取和寫入CSV文件
- 4、python怎麼寫入csv文件
- 5、python把csv文件導入成想要的矩陣格式
如何將csv文件中的數據寫入python並轉換成矩陣以文件形式輸出
Python處理csv文件時經常會用到講csv文件整體讀取為一個數組或者矩陣的情況,藉助numpy包,可以使用如下代碼簡潔高效低實現:
[python] view plain copy
import numpy
my_matrix = numpy.loadtxt(open(“c:\\1.csv”,”rb”),delimiter=”,”,skiprows=0)
將數組或者矩陣存儲為csv文件可以使用如下代碼實現:
[python] view plain copy
numpy.savetxt(‘new.csv’, my_matrix, delimiter = ‘,’)
利用Python如何將數據寫到CSV文件中
如果你的數據是列表格式,可以使用一個迭代器,將數據寫入文件,同時添加必要的分隔符以構成csv文件
如果數據是字典格式,需要考慮使用換行符或者其他特殊符號來分割每個字典元素(包括鍵和值)。鍵和值可以考慮使用和之前不重複的分隔符進行分割。
這樣就構成了一個csv文件(csv使用分隔符分割值的文件)
操作方法如下:
1,使用讀寫追加的方式打開csv文件。
2,找到csv文件的結尾。
3,在結尾使用和之前csv使用的分割相同的格式進行數據添加。
4,關閉文件
csv文件怎麼打開 使用Python讀取和寫入CSV文件
csv文件本質上是一個文本文件,具體的讀取和寫入方法有兩種:
直接對csv文件進行文件讀寫操作,每一行是一條記錄,按行讀取即可,簡單代碼如下:
with open(“XXX.csv”,”wr”) as f:
f.readline()
f.write()
2.使用第三方庫中的csv文件讀寫函數(本質上還是使用python的文件讀寫方法),如科學計算包pandas包中就有read_csv() to_csv()等函數,其他的一些第三方包里也有,可以自行查詢。
兩種方法各有優劣,第一種方法的優點就是可控性強,但是代碼相對較多,對於python2編碼處理很麻煩;第二種方法的優點是代碼量小,調用方便,處理編碼問題相對容易(在函數中加一個encoding參數即可),但是代碼內部比較複雜,可控性較差
python怎麼寫入csv文件
import pandas as pd#任意的多組列表a = [1,2,3]
b = [4,5,6]
#字典中的key值即為csv中列名dataframe = pd.DataFrame({‘a_name’:a,’b_name’:b})#將DataFrame存儲為csv,index表示是否顯示行名,default=Truedataframe.to_csv(“test.csv”,index=False,sep=”)1234567891011
a_name b_name0 1 41 2 52 3 61234
同樣pandas也提供簡單的讀csv方法
import pandas as pddata = pd.read_csv(‘test.csv’)12
會得到一個DataFrame類型的data,不熟悉處理方法可以參考pandas十分鐘入門
另一種方法用csv包,一行一行寫入
import csv
#python2可以用file替代open
with open(“test.csv”,”w”) as csvfile:
writer = csv.writer(csvfile)
#先寫入columns_name
writer.writerow([“index”,”a_name”,”b_name”])
#寫入多行用writerows
writer.writerows([[0,1,3],[1,2,3],[2,3,4]])12345678910
index a_name b_name0 1 31 2 32 3 41234
讀取csv文件用reader
import csvwith open(“test.csv”,”r”) as csvfile:
reader = csv.reader(csvfile) #這裡不需要readlines
for line in reader:
print line
python把csv文件導入成想要的矩陣格式
很多時候,我們將數據存在txt或者csv格式的文件里,最後再用python讀取出來,存到數組或者列表裡,再做相應計算。本文首先介紹寫入txt的方法,再根據不同的需求(存為數組還是list),介紹從txt讀取浮點數的方法。
一、寫入浮點數到txt文件:
假設每次有兩個浮點數需要寫入txt文件,這裡提供用with關鍵字打開文件的方法,使用with打開文件是一個很好的習慣,因為with結束,它就會自動close file,不用手動再去flie.close()。
[python] view plain copy
with open(‘file_path/filename.txt’,’a’) as file:
write_str = ‘%f %f\n’%(float_data1,float_data2)
file.write(write_str)
二、從txt文件提取浮點數到numpy數組或list列表
首先假設你有一個odom.txt 的文件,裡面每一行的數據個數都相同,如截圖所示:
1.如果你是想把這些數據讀取出來,存為numpy數組,那麼一句代碼可以搞定:
[python] view plain copy
a = numpy.loadtxt(‘odom.txt’)
存為numpy數組以後,a的尺寸可以用a.shape進行查看,這裡應為:(14,2)也就是14行2列。如果你覺得這個形狀不是你期待的,你可以用:
[python] view plain copy
b = numpy.reshape(a,(你想要的形狀))
如
b = numpy.reshape(a,(-1,1,2))
那麼b就是一個三維數組了(14,1,2)
2.如果只是想讀出來,存到一個list里,那就用下面的常用python格式了:
[python] view plain copy
with open(‘odom.txt’, ‘r’) as f:
data = f.readlines() #txt中所有字符串讀入data
for line in data:
odom = line.split() #將單個數據分隔開存好
numbers_float = map(float, odom) #轉化為浮點數
print numbers_float
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/191105.html