使用Pandas讀取資料

2021-10-01 14:50:00 字數 2636 閱讀 6377

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...