Python Pandas讀寫txt和csv文件的方法詳解
一、文本文件
文本文件,主要包括csv和txt兩種等,相應(yīng)接口為read_csv()和to_csv(),分別用于讀寫數(shù)據(jù)
1. read_csv()
格式代碼:
pandas.read_csv(filepath_or_buffer, sep=', ', delimiter=None, header='infer', names=None, index_col=None, usecols=None, squeeze=False, prefix=None, mangle_dupe_cols=True, dtype=None, engine=None, converters=None, true_values=None, false_values=None, skipinitialspace=False, skiprows=None, nrows=None, na_values=None, keep_default_na=True, na_filter=True, verbose=False, skip_blank_lines=True, parse_dates=False, infer_datetime_format=False, keep_date_col=False, date_parser=None, dayfirst=False, iterator=False, chunksize=None, compression='infer', thousands=None, decimal=b'.', lineterminator=None, quotechar='"', quoting=0, escapechar=None, comment=None, encoding=None, dialect=None, tupleize_cols=None, error_bad_lines=True, warn_bad_lines=True, skipfooter=0, doublequote=True, delim_whitespace=False, low_memory=True, memory_map=False, float_precision=None)
常用參數(shù):
- filepath_or_buffer:文件路徑
- sep=',':默認(rèn)以,為數(shù)據(jù)分隔符
- skiprows:跳過(guò)前幾行
- nrows :只讀前幾行
- parse_dates = [‘col_name’]:指定某行讀取為日期格式
- index_col = [‘col_1’,‘col_2’]:讀取指定的幾列
- error_bad_lines = False :當(dāng)某行數(shù)據(jù)有問(wèn)題時(shí),不報(bào)錯(cuò),直接跳過(guò),處理臟數(shù)據(jù)時(shí)使用
- na_values = ‘NULL’:將NULL識(shí)別為空值
- header = 0:表示以數(shù)據(jù)的第一行為列索引
- encoding = “utf-8”:表明以u(píng)tf-8為編碼規(guī)則。
- names = range(0,50)):表示以[0…49]為列索引的名字
(1)讀取csv文件:
>>> import pandas as pd >>> >>> df = pd.read_csv(r"E:\Python學(xué)習(xí)\test.csv") >>> print(df) name age 0 小紅 10 1 小明 20 2 小白 30 >>> print(type(df)) <class 'pandas.core.frame.DataFrame'> >>> # 行和列 >>> print(df.shape) (3, 2) >>> print(list(df.columns)) ['name', 'age']
(2)讀取txt文件:
>>> df = pd.read_csv(r"E:\Python學(xué)習(xí)\test.txt") >>> print(df) 北京 0 上海 1 成都 2 深圳 3 廣州 4 廣東
skiprows
跳過(guò)前n行
>>> df = pd.read_csv(r"E:\Python學(xué)習(xí)\test.csv", skiprows=2) >>> print(df) 小明 20 0 小白 30
nrows
只讀前幾行
>>> df = pd.read_csv(r"E:\Python學(xué)習(xí)\test.csv", nrows =2) >>> print(df) name age 0 小紅 10 1 小明 20
index_col
index_col = [‘col_1’,‘col_2’]:讀取指定的幾列。整數(shù)或者字符串或者整數(shù)/字符串列表。指定用作的行標(biāo)簽的列。
感覺有問(wèn)題,和我想象中不同:
>>> df = pd.read_csv(r"E:\Python學(xué)習(xí)\test.csv", index_col =['name'])
>>> print(df)
age
name
小紅 10
小明 20
小白 30
>>> df = pd.read_csv(r"E:\Python學(xué)習(xí)\test.csv", index_col=1)
>>> print(df)
name
age
10 小紅
20 小明
30 小白
names
names = range(0,50):表示以[0…49]為列索引的名字
不與header=0共同使用:
>>> df = pd.read_csv(r"E:\Python學(xué)習(xí)\test.csv", names=['姓名', '年齡'])
>>> print(df)
姓名 年齡
0 name age
1 小紅 10
2 小明 20
3 小白 30
與header=0共同使用:
>>> df = pd.read_csv(r"E:\Python學(xué)習(xí)\test.csv", header=0, names=['姓名', '年齡']) >>> print(df) 姓名 年齡 0 小紅 10 1 小明 20 2 小白 30
2. to_csv()
格式代碼:
pd.to_csv(path_or_buf,sep,na_rep,columns,header,index)
常用參數(shù):
path_or_buf:str:放文件名、相對(duì)路徑、文件流等。
sep:分隔符。與read_csv()中sep參數(shù)意思一樣。
na_rep:將NaN轉(zhuǎn)換為特定值。
columns:指定哪些列寫進(jìn)去。
header;默認(rèn)header=0,如果沒有表頭,設(shè)置header=None。
index:關(guān)于索引的,默認(rèn)True,寫入索引。
(1)寫入csv文件:
>>> import pandas as pd
>>>
>>> data = [{'A': 1, 'B': 2}, {'A': 3, 'B': 4, 'C': 5}]
>>> df = pd.DataFrame(data)
>>> print(df)
A B C
0 1 2 NaN
1 3 4 5.0
>>> print(type(df))
<class 'pandas.core.frame.DataFrame'>
>>> df.to_csv('test1.csv')
>>>
可以看到生成了新文件:

我們讀取看看:
>>> df1 = pd.read_csv(r"test1.csv", header=0, encoding="utf-8") >>> print(df1) A B C 0 1 2 NaN 1 3 4 5.0
(2)寫入txt文件:
>>> data = [{'A': 1, 'B': 2}, {'A': 3, 'B': 4, 'C': 5}]
>>> df = pd.DataFrame(data)
>>> df.to_csv('test1.txt')
生成新文件:

sep
設(shè)置分隔符
>>> data = [{'A': 1, 'B': 2}, {'A': 3, 'B': 4, 'C': 5}]
>>> df = pd.DataFrame(data)
>>> df.to_csv('test2.csv', sep=';') # 設(shè)置;號(hào)為分割符
可以看到分隔符為分號(hào):

na_rep
na_rep:將NaN轉(zhuǎn)換為特定值。
>>> data = [{'A': 1, 'B': 2}, {'A': 3, 'B': 4, 'C': 5}]
>>> df = pd.DataFrame(data)
>>> df.to_csv('test3.csv', na_rep='100') # 空值替換為100
>>>
>>> df1 = pd.read_csv('test3.csv')
>>> print(df1)
Unnamed: 0 A B C
0 0 1 2 100.0
1 1 3 4 5.0
columns
columns:指定哪些列寫進(jìn)去。
>>> data = [{'A': 1, 'B': 2}, {'A': 3, 'B': 4, 'C': 5}]
>>> df = pd.DataFrame(data)
>>> df.to_csv('test4.csv', columns=['A','B']) # 只寫入A、B列
>>>
>>> df1 = pd.read_csv('test4.csv')
>>> print(df1)
Unnamed: 0 A B
0 0 1 2
1 1 3 4
header
header;默認(rèn)header=0,如果沒有表頭,設(shè)置header=None。
>>> data = [{'A': 1, 'B': 2}, {'A': 3, 'B': 4, 'C': 5}]
>>> df = pd.DataFrame(data)
>>> df.to_csv('test5.csv', header=None)
>>>
>>> df1 = pd.read_csv('test5.csv')
>>> print(df1)
0 1 2 Unnamed: 3
0 1 3 4 5.0
index
index:關(guān)于索引的,默認(rèn)True,寫入索引
不保留索引:
>>> data = [{'A': 1, 'B': 2}, {'A': 3, 'B': 4, 'C': 5}]
>>> df = pd.DataFrame(data)
>>> df.to_csv('test6.csv', index=False)
>>>
>>> df1 = pd.read_csv('test6.csv')
>>> print(df1)
A B C
0 1 2 NaN
1 3 4 5.0
以上就是Python Pandas讀寫txt和csv文件的方法詳解的詳細(xì)內(nèi)容,更多關(guān)于Python Pandas讀寫txt csv的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
python suds訪問(wèn)webservice服務(wù)實(shí)現(xiàn)
這篇文章主要介紹了python suds訪問(wèn)webservice服務(wù)實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2020-06-06
利用python循環(huán)創(chuàng)建多個(gè)文件的方法
今天小編就為大家分享一篇利用python循環(huán)創(chuàng)建多個(gè)文件的方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2018-10-10
python實(shí)現(xiàn)LRU熱點(diǎn)緩存及原理
LRU算法根據(jù)數(shù)據(jù)的歷史訪問(wèn)記錄來(lái)進(jìn)行淘汰數(shù)據(jù),其核心思想是“如果數(shù)據(jù)最近被訪問(wèn)過(guò),那么將來(lái)被訪問(wèn)的幾率也更高”。 。這篇文章主要介紹了python實(shí)現(xiàn)LRU熱點(diǎn)緩存,需要的朋友可以參考下2019-10-10
keras model.fit 解決validation_spilt=num 的問(wèn)題
這篇文章主要介紹了keras model.fit 解決validation_spilt=num 的問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2020-06-06
利用Python制作一個(gè)簡(jiǎn)單的天氣播報(bào)系統(tǒng)
最近天氣的多變,好幾次出門半路天氣轉(zhuǎn)變。本文將利用python整個(gè)天氣爬蟲來(lái)獲取天氣情況。這樣也好可以進(jìn)行一個(gè)提前預(yù)防,感興趣的可以動(dòng)手試一試2022-05-05
Python的自動(dòng)化部署模塊Fabric的安裝及使用指南
這篇文章主要介紹了Python的自動(dòng)化部署模塊Fabric的安裝及使用指南,文中以Debian系統(tǒng)為環(huán)境進(jìn)行了實(shí)例演示,需要的朋友可以參考下2016-01-01
關(guān)于Python內(nèi)存分配時(shí)的小秘密分享
這篇文章主要給大家分享介紹了關(guān)于Python內(nèi)存分配時(shí)的小秘密,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家學(xué)習(xí)或者使用Python具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2019-09-09
Python使用Selenium進(jìn)行Web自動(dòng)化測(cè)試
Selenium 是一個(gè)用于 Web 應(yīng)用自動(dòng)化測(cè)試的強(qiáng)大工具,可以用來(lái)模擬用戶操作瀏覽器,從而測(cè)試 Web 應(yīng)用的功能,它支持多種瀏覽器和編程語(yǔ)言,包括 Python,下面我們將介紹如何使用 Selenium 進(jìn)行 Web 自動(dòng)化測(cè)試,需要的朋友可以參考下2024-08-08

