import pandas as pd
data_path =
'../datawarehouse/testdata/test01.csv'
df = pd.read_csv(data_path, sep=
'\t'
, encoding=
'utf-8'
)
header_name =
['col1'
,'col2'
,'col3'
,'col4'
,'col5'
]# 指定標題行各個欄位名稱
df = pd.read_csv(data_path, sep=
'\t'
, encoding=
'utf-8'
, header=
none
, names=header_name)
# usecols 可指定是第幾列,也可直接指定列名稱
df = pd.read_csv(data_path, sep=
'\t'
, encoding=
'utf-8'
, usecols=[0
,1,2
])# usecols指定第幾列
df = pd.read_csv(data_path, sep=
'\t'
, encoding=
'utf-8'
, usecols=
['col1'
,'col3'
,'col4'])
# usecols指定列名
# 如果檔案的分隔符是特殊字元,如退格符等特殊符號,sep接受16進製制字元
# '\x'的意思是16進製制, 需用'\\x'對其中的'\'進行轉義
# 7f和5e是16進製制字元,分別代表退格符和'^'
df = pd.read_csv(data_path, sep=
'\\x7f\\x5e'
, encoding=
'utf-8'
)
# 使用pandas讀取資料時,如果檔案比較大,則可以使用引數chunksize對其進行分批次讀取
# chunksize 是設定一次讀取多少條記錄,返回乙個可迭代物件
df_chunk = pd.read_csv(data_path, sep=
'\t'
, encoding=
'utf-8'
, chunksize=
1000000
)def
get_chunk_data
(df_chunk)
: chunks =
for chunk in df_chunk:
# 每個chunk都是乙個分批次讀取出來的dataframe
# 使用panndas的concat函式,將分批次讀取的dataframe拼接起來
# axis指定沿著哪個軸進行拼接: 0是按行拼接,1是按列拼接
df_all = pd.concat(chunks, axis=0)
# 刪除chunks,釋放記憶體
del chunks
return df_all
df_all = get_chunk_data(df_chunk)
import os
defget_chunk_data
(df_chunk)
: chunks =
for chunk in df_chunk:
df_all = pd.concat(chunks, axis=0)
del chunks
return df_all
defconcat_files
(source_path)
:"""
paramters
---------
source_path: 需要讀取的大檔案所在資料夾路徑
returns
-------
df_concat: 最終所有檔案合併後的dataframe
"""file_list =
for root, dirs, files in os.walk(source_path)
:for
file
in files:
src_file = os.path.join(root,
file
) temp_df =
forfile
in file_list:
df_chunk = pd.read_csv(
file
, sep=
'\t'
, encoding=
'utf-8'
, chunksize=
1000000
) df_chunk_concat = get_chunk_data(df_chunk)
df_concat = pd.concat(temp_df, axis=0)
del temp_df
return df_concat
pandas讀取資料
導庫 import pandas as pd fpath d 123.csv 讀取資料 book pd.read csv fpath 檢視全部內容 book idusename course01 張三7512 李四8023 王二8334 張華9045 小明7856 小紅7667 小七90 檢視前5行...
Pandas 資料讀取
1.讀取table 讀取普通分隔資料 read table 可以讀取txt,csv import osos.chdir f 首先設定一下讀取的路徑 data1 pd.read table data1.txt delimiter header 0 print data1 data1 pd.read t...
使用pandas讀取excel
pd.read excel io,sheet name 0,header 0,names none,index col none,usecols none,squeeze false,dtype none,engine none,converters none,true values none,fa...