網(wǎng)站首頁 編程語言 正文
一、文本文件
文本文件,主要包括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:跳過前幾行
- nrows :只讀前幾行
- parse_dates = [‘col_name’]:指定某行讀取為日期格式
- index_col = [‘col_1’,‘col_2’]:讀取指定的幾列
- error_bad_lines = False :當(dāng)某行數(shù)據(jù)有問題時,不報錯,直接跳過,處理臟數(shù)據(jù)時使用
- na_values = ‘NULL’:將NULL識別為空值
- header = 0:表示以數(shù)據(jù)的第一行為列索引
- encoding = “utf-8”:表明以utf-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
跳過前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)簽的列。
感覺有問題,和我想象中不同:
>>> 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:放文件名、相對路徑、文件流等。
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è)置;號為分割符
可以看到分隔符為分號:
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
原文鏈接:https://blog.csdn.net/yuan2019035055/article/details/126908798
相關(guān)推薦
- 2023-02-06 python常見讀取語音的3種方法速度對比_python
- 2022-06-29 C語言超詳細(xì)講解遞歸算法漢諾塔_C 語言
- 2023-11-20 如何設(shè)置樹莓派4B的頻率?
- 2023-09-18 Echarts常見問題總結(jié)(持續(xù)更新)
- 2022-02-04 Win10 無法保存對hosts權(quán)限所作的更改 拒絕訪問
- 2023-02-04 Qt信號與槽知識點總結(jié)歸納_C 語言
- 2022-12-15 詳解Golang如何比較兩個slice是否相等_Golang
- 2022-08-01 React中的Hooks進(jìn)階理解教程_React
- 最近更新
-
- window11 系統(tǒng)安裝 yarn
- 超詳細(xì)win安裝深度學(xué)習(xí)環(huán)境2025年最新版(
- Linux 中運行的top命令 怎么退出?
- MySQL 中decimal 的用法? 存儲小
- get 、set 、toString 方法的使
- @Resource和 @Autowired注解
- Java基礎(chǔ)操作-- 運算符,流程控制 Flo
- 1. Int 和Integer 的區(qū)別,Jav
- spring @retryable不生效的一種
- Spring Security之認(rèn)證信息的處理
- Spring Security之認(rèn)證過濾器
- Spring Security概述快速入門
- Spring Security之配置體系
- 【SpringBoot】SpringCache
- Spring Security之基于方法配置權(quán)
- redisson分布式鎖中waittime的設(shè)
- maven:解決release錯誤:Artif
- restTemplate使用總結(jié)
- Spring Security之安全異常處理
- MybatisPlus優(yōu)雅實現(xiàn)加密?
- Spring ioc容器與Bean的生命周期。
- 【探索SpringCloud】服務(wù)發(fā)現(xiàn)-Nac
- Spring Security之基于HttpR
- Redis 底層數(shù)據(jù)結(jié)構(gòu)-簡單動態(tài)字符串(SD
- arthas操作spring被代理目標(biāo)對象命令
- Spring中的單例模式應(yīng)用詳解
- 聊聊消息隊列,發(fā)送消息的4種方式
- bootspring第三方資源配置管理
- GIT同步修改后的遠(yuǎn)程分支