首先,需要:
import pandas as pd
對於各個檔案格式,讀取的語句分別如下:
path="c:/users/h/desktop/wordflag.csv"
name=pd.read_csv(path,sep=',',encoding='gbk')
字段
含義read_csv
讀乙個csv檔案
sep分隔符,預設為","
encoding
編碼方式,一般為』gbk』。若無法讀取,應將檔案另存為utf-8格式,再按encoding='utf-8』讀取
仍然使用read_csv() 函式。pandas讀寫csv和txt兩種檔案的用法一樣。
path="c:/users/h/desktop/wordflag1.txt"
name=pd.read_csv(path,sep=',',encoding='gbk')
path="c:/users/h/desktop/wordflag.xlsx"
df = pd.read_excel(path,sheetname=1)
#讀excel表的第2個sheet
字段
含義pd.read_excel(path[, sheetname=sheet_index])
讀excel檔案,預設讀第乙個sheet(sheet_index=0)
path
檔案字尾可以是xlsx or xls
sheetname
表示讀第幾個sheet,從0開始計數,預設為0.
也可一次性輸入多個sheet,如下:
path="c:/users/h/desktop/wordflag.xlsx"
#讀第1、2、4個sheet
df = pd.read_excel(path,sheetname=[0,1,3])
dfout[1]:
ordereddict([(0, 哈哈哈 嘿嘿嘿
0 哈哈哈 嘿嘿嘿
1 哈哈哈 嘿嘿嘿
2 哈哈哈 嘿嘿嘿
3 哈哈哈 嘿嘿嘿), (1, a b
0 a b
1 a b
2 a b
3 a b), (3, 1 2
0 1 2
1 1 2
2 1 2)])
結果為乙個ordereddict物件,檢視df[0]得:第乙個sheet的資料組成的dataframe。
df[0]
out[2]:
哈哈哈 嘿嘿嘿
0 哈哈哈 嘿嘿嘿
1 哈哈哈 嘿嘿嘿
2 哈哈哈 嘿嘿嘿
3 哈哈哈 嘿嘿嘿
常用讀取函式彙總:
函式功能
read_csv
讀取檔案、url中帶分隔符的資料,預設分隔符為英文逗號","
read_table
讀取檔案、url中帶分隔符的資料,預設分隔符為製表符"\t"
read_fwf
讀取固定列寬資料,無分隔符
read_clipboard
讀取剪下板資料
對於各個檔案格式,寫出的語句分別如下:
path="c:/users/h/desktop/wordflag.csv"
name.to_csv(path)
執行後生成乙個名為wordflag的csv檔案,儲存於路徑"c:/users/h/desktop/「
path="c:/users/h/desktop/wordflag.txt"
name.to_csv(path)
執行後生成乙個名為wordflag的txt檔案,儲存於路徑"c:/users/h/desktop/「
path="c:/users/h/desktop/wordflag1.xlsx"
name.to_excel(path)
用read_table函式。
path="c:/users/h/desktop/wordflag.txt"
with open(path,'r') as f:
name = pd.read_table(f)
字段
含義with
表示"在…的條件下,執行後續語句"
open(path[,mode]) as filename
以mode方式開啟path處的檔案,並取別名為filename。mode預設為唯讀(「r」)
各種mode
r以唯讀方式開啟檔案,從頭開始讀。
r+開啟乙個檔案用於讀寫,從頭開始讀。
w開啟乙個檔案只用於寫入。若檔案已存在,則刪除原內容從頭寫入。若檔案不存在,建立新檔案。
w+開啟乙個檔案用於讀寫。若檔案已存在,則刪除原內容從頭寫入。若檔案不存在,建立新檔案。
a開啟乙個檔案用於追加。若檔案已存在,則追加內容寫入。若檔案不存在,建立新檔案。
a+開啟乙個檔案用於讀寫。若檔案已存在,檔案開啟時會是追加讀寫模式。若該檔案不存在,建立新檔案。
逐行讀取
a=
#生成乙個空列表
path="c:/users/h/desktop/wordflag1.txt"
with open(path) as f:
#開啟path處的檔案,取別名為f
for i, line in enumerate(f.readlines()):
#窮舉檔案中讀到的行,i為行編號,line為行內容
#f.readlines()為列**式,列表每一元素為一行
#在列表a中追加讀到的line
f.close()
函式
功能enumerate(object)
窮舉所有的組合,其中object為可迭代的物件,如列表
readline( )
檔案的方法,用來讀行資料
列表、dataframe均有的方法,追加資料data
較為超前,可等到了解dataframe和迴圈體再看。
import pandas as pd
import os
import sys
import csv
#設定maxint,避免資料溢位
maxint = sys.maxsize
decrement = true
while decrement:
decrement = false
try:
csv.field_size_limit(maxint)
except overflowerror:
maxint = int(maxint/10)
decrement = true
#得到根目錄
os.chdir('d:/chukumingxiweek20')
file_chdir=os.getcwd()
#檔名列表
filecsv_list=
#遍歷根目錄下的檔案
for root,dirs,files in os.walk(file_chdir):
for file in files:
#選取其中的csv檔案
if os.path.splitext(file)[1]=='.csv':
#在檔名列表中追加檔名
#建立乙個空dataframe
data=pd.dataframe()
for csv in filecsv_list[0:]:
try:
#讀取 datatemp=pd.read_csv(csv,sep=none,encoding='utf-8',error_bad_lines=false)
#列印當前讀取的檔名
print(csv)
#追加當前檔案資料
except typeerror:
pass
continue
下期預告:字串操作、迴圈體、條件語句 python3 和python2檔案相互轉換
注 本文以python3轉python2為例,如要python2轉python3,將 中的3to2改為2to3即可 操作步驟 安裝3to2庫 pip3 install 3to2 找到檔案3to2,這個檔案是沒有字尾的,路徑在python的scripts資料夾下。anaconda也是一樣 開啟cmd,...
python讀取grib2檔案
一 安裝pygrib庫 linux安裝conda後執行命令 conda install c conda forge pygrib y 二 讀取檔案操作 1.獲得屬性列表 import pygrib import sys import pandas as pd if name main fr sys....
C 輸入 2 檔案讀取
記錄以檔案方式讀取資料。如從檔案data.txt中讀取資料,檔案內容如下 0 0 3 82 2 1 15 3 4 86 3 5 46 4 7 5 思路 先通過檔案的行數,得到樣本個數,再建立動態陣列,逐個讀取資料。變數定義 define max sample num 100 最大樣本個數 doubl...