A. 怎麼用python讀取csv數據
csv是我接觸的比較早的一種文件,比較好的是這種文件既能夠以電子表格的形式查看又能夠以文本的形式查看。最早接觸是在別人的Perl腳本中,或許是為了充分利用Perl的文本處理能力。不過,日常的生活工作中我用到的比較多的倒還是電子表格。
創建一個電子表格如下:
使用Mac中Numbers功能將其導出為csv文件,使用文本查看文件內容如下:
GreydeMac-mini:chapter06 greyzhang$ cat data.csv
index,name,comment,,,,
1,name_01,coment_01,,,,
2,name_02,coment_02,,,,
3,name_03,coment_03,,,,
4,name_04,coment_04,,,,
5,name_05,coment_05,,,,
6,name_06,coment_06,,,,
7,name_07,coment_07,,,,
8,name_08,coment_08,,,,
9,name_09,coment_09,,,,
10,name_10,coment_10,,,,
11,name_11,coment_11,,,,
12,name_12,coment_12,,,,
13,name_13,coment_13,,,,
14,name_14,coment_14,,,,
15,name_15,coment_15,,,,
16,name_16,coment_16,,,,
17,name_17,coment_17,,,,
18,name_18,coment_18,,,,
19,name_19,coment_19,,,,
20,name_20,coment_20,,,,
21,name_21,coment_21,,,,
換用pandas嘗試數據文件讀取如下:
In [1]:importpandasaspd
In [2]:ls
data.csv data.numbers
In [3]:data = pd.read_csv('data.csv')
In [4]:data
Out[4]:
index name comment Unnamed: 3 Unnamed: 4 Unnamed: 5 Unnamed: 6
0 1 name_01 coment_01 NaN NaN NaN NaN
1 2 name_02 coment_02 NaN NaN NaN NaN
2 3 name_03 coment_03 NaN NaN NaN NaN
3 4 name_04 coment_04 NaN NaN NaN NaN
4 5 name_05 coment_05 NaN NaN NaN NaN
5 6 name_06 coment_06 NaN NaN NaN NaN
6 7 name_07 coment_07 NaN NaN NaN NaN
7 8 name_08 coment_08 NaN NaN NaN NaN
8 9 name_09 coment_09 NaN NaN NaN NaN
9 10 name_10 coment_10 NaN NaN NaN NaN
10 11 name_11 coment_11 NaN NaN NaN NaN
11 12 name_12 coment_12 NaN NaN NaN NaN
12 13 name_13 coment_13 NaN NaN NaN NaN
13 14 name_14 coment_14 NaN NaN NaN NaN
14 15 name_15 coment_15 NaN NaN NaN NaN
15 16 name_16 coment_16 NaN NaN NaN NaN
16 17 name_17 coment_17 NaN NaN NaN NaN
17 18 name_18 coment_18 NaN NaN NaN NaN
18 19 name_19 coment_19 NaN NaN NaN NaN
19 20 name_20 coment_20 NaN NaN NaN NaN
20 21 name_21 coment_21 NaN NaN NaN NaN
查看讀取出來的結果,看的出結果被處理成了pandas的DataFrame格式。
In [6]: type(data)
Out[6]:pandas.core.frame.DataFrame
B. python怎麼讀取csv文件
csv文件就是用逗號分隔的文本文件,和文本文件的讀取方式相同。
如果csv文件都是數值,想要將其轉為列表,可採用如下程序實現:
# csv_file
f=open('abc.txt','r')
lines=f.readlines()
print(lines)
f.close()
list1=[]
for line in lines:
for i in line.split(','):
list1.append(int(i))
print(list1)
C. Python csv模塊(讀寫文件)
CSV文件又稱為逗號分隔值文件,是一種通用的、相對簡單的文件格式,用以存儲表格數據,包括數字或者字元。CSV是電子表格和資料庫中最常見的輸入、輸出文件格式。
通過爬蟲將數據抓取的下來,然後把數據保存在文件,或者資料庫中,這個過程稱為數據的持久化存儲。本節介紹Python內置模塊CSV的讀寫操作。
1)csv.writer()
csv模塊中的writer類可用於讀寫序列化的數據,其語法格式如下:
參數說明:
csvfile:必須是支持迭代(Iterator)的對象,可以是文件(file)對象或者列表(list)對象。
dialect:編碼風格,默認為excel的風格,也就是使用逗號,分隔。
fmtparam:格式化參數,用來覆蓋之前dialect對象指定的編碼風格。
如果想同時寫入多行數據,需要使用writerrows()方法,代碼如下所示:
aggs.csv文件內容:
2)csv.DictWriter()
當然也可使用DictWriter類以字典的形式讀寫數據,使用示例如下:
name.csv文件內容,如下所示:
1)csv,reader()
csv模塊中的reader類和DictReader類用於讀取文件中的數據,其中reader()語法格式如下:
2)csv.DictReader()
應用示例如下:
輸出結果:
開課吧廣場-人才學習交流平台
D. python 怎麼讀csv文件
CSV文件本質上就是文本文件,只不過每行的數據用逗號分隔。
所以你當成文本文件打開一行一行的讀然後拆分就可以了。
data=[]
withopen(r'd: empdemo.csv','r')ascsv_file:
forlineincsv_file:
data.append(line.strip().split(','))
print(data)
#另外Python標准庫里有個CSV模塊可以用。
importcsv
withopen(file_path,'rb')ascsv_file:
data=list(csv.reader(csv_file))[1:]#去掉首行的列名
還有就是可以用Pandas這個庫,dataframe有導入csv功能。
E. python按時間讀取csv中的數據
我在這里做的小測試是可以的
你將會員卡號想像成你那表格里的時間,其他是一樣的。
F. python—CSV的讀寫
1.寫入csv數據
import csv
header=['class','name','sex','height','year']
rows=[
[1,'xiaoming','male',168,23],
[1,'xiaohong','female',162,22],
[2,'xiaozhang','female',158,21],
[2,'xiaoli','male',158,21]
]
with open('csvdir.csv','w',newline='')as f: #newline=" "是為了避免寫入之後有空行
ff=csv.writer(f)
ff.writerow(header)
ff.writerows(rows)
2.在寫入字典序列類型數據的時候,需要傳入兩個參數,一個是文件對象——f,一個是欄位名稱——fieldnames,到時候要寫入表頭的時候,只需要調用writerheader方法,寫入一行字典系列數據調用writerrow方法,並傳入相應字典參數,寫入多行調用writerows
import csv
headers = ['class','name','sex','height','year']
rows = [
{'class':1,'name':'xiaoming','sex':'male','height':168,'year':23},
{'class':1,'name':'xiaohong','sex':'female','height':162,'year':22},
{'class':2,'name':'xiaozhang','sex':'female','height':163,'year':21},
{'class':2,'name':'xiaoli','sex':'male','height':158,'year':21},
]
with open('test2.csv','w',newline='')as f:
f_csv = csv.DictWriter(f,headers)
f_csv.writeheader()
f_csv.writerows(rows)
注意:列表和字典形式的數據寫入是不一樣的!!!!!!
3.csv的讀取,和讀取文件差不多:
import csv
with open('test.csv')as f:
f_csv = csv.reader(f)
for row in f_csv:
print(row)
G. python中讀取csv文件
python中讀取csv方法有3種:
第一種,普通方法讀取(open函數打開,然後使用for循環讀取內容);
第二種,使用用CSV標准庫讀取;
第三種,用pandas模塊讀取。
H. python怎麼讀取csv文件
這兩天剛好看到,Python CookBook上有說到。這里是三種讀取csv的方法。
文件格式是這樣的
Region,DATE_,RAW_ACU
zh_ch,Jan 27 2017,208172
importcsv
#withopen('data.csv')asf:
#f_csv=csv.reader(f)
#headers=next(f_csv)
#forrowinf_csv:
##print(row)
#print(row[0],row[1])
#withopen('data.csv',encoding='utf-8-sig')asf:
#f_csv=csv.reader(f)
#headers=next(f_csv)
#print(headers)
#Row=namedtuple('Row',headers)
#forrinf_csv:
#row=Row(*r)
#print(row.Region,row.DATE_)
withopen('data.csv',encoding='utf-8-sig')asf:
f_csv=csv.DictReader(f)
forrowinf_csv:
print(row['DATE_'],row)
具體可以看這個文檔。http://python3-cookbook.readthedocs.io/zh_CN/latest/c06/p01_read_write_csv_data.html。
I. python中怎麼讀取csv文件
Python讀取CSV文件方法如下:
如下是一個CVS文件
使用Python打開CSV可以直接使用open函數打開,然後使用reader函數讀取內容,實現代碼如下:
運行結果如下:
更多Python相關技術文章,請訪問Python教程欄目進行學習!以上就是小編分享的關於python中怎麼讀取csv文件的詳細內容希望對大家有所幫助,更多有關python教程請關注環球青藤其它相關文章!
J. 說說如何利用 Python 處理 CSV 文件
CSV 表示 「Comma-Separated Values (逗號分隔的值) 」 , CSV 文件是簡化的電子表格,實際為純文本文件。
一個 CSV 文件,格式是這樣的:
因為 CSV 文件中的每個單元格都是以逗號分割,所以也許有人會對每行文本調用 split() 方法,來解析 CSV 文件。但 CSV 文件也有自己的轉義字元,通過轉義字元,允許逗號和其他字元作為值的一部分,但單純使用 split() 方法不能處理這些轉義字元。因為這些潛在的缺陷,所以建議總是使用 csv 模塊來讀寫 CSV 文件。
csv 模塊是 Python 自帶的,所以可以直接導入。
要使用 csv 模塊從 CSV 文件中讀取數據,我們需要創建一個 Reader 對象。 通過 Reader 對象,我們可以迭代遍歷 CSV 文件中的每一行內容。
運行結果:
要用 csv 模塊讀取 CSV 文件,首先先使用 open() 函數打開它 ,就像打開任何其他文本文件一樣。然後將它傳遞給 csv .reader() 函數。 這個函數將返回一個 Reader 對象。注意,csv .reader() 函數不接受文件名作為入參。
要訪問 Reader 對象中的值,最直接的方法,就是利用 list() 將它轉換成一個普通 Python 列表。它實際為一個包含列表的列表,用於表示二維數據。
我們還可以使用表達式 data [ row ][ col ] 來訪問 CSV 中特定行和列的值。其中, row 是 data 中一個列表的下標, col 是該列表中,我們想訪問的項的下標:
運行結果:
運行結果:
Writer 對象可以讓我們把數據寫入 CSV 文件。
運行結果:
在 Windows 上,需要為 open() 函數的 newline 關鍵字參數傳入一個空字元串。如果沒有設置 newline 參數, output.csv 中的行距將變為兩倍,如下圖所示。
如果寫入的內容包含逗號,那麼 csv 模塊會自動加上雙引號,對其進行轉義,如下例所示。
運行結果:
我們也可以利用 delimiter ,來製作 TSV 文件,TSV 是Tab-separated values的縮寫,即以製表符作為分隔符的文件;利用 lineterminator 參數來設定行距。
運行結果:
這里利用 lineterminator='\n\n\n' 將行與行之間的字元變為三個換行符,效果就是實現了 3 倍行距。