python pandas 解析(讀取、寫入)CSV 文件的操作方法
1. 使用 pandas 讀取 CSV 文件
原始數(shù)據(jù)包含了公司員工的數(shù)據(jù):
Name | Hire Date | Salary | Sick Days remaining |
---|---|---|---|
Graham Chapman | 03/15/14 | 50000.00 | 10 |
John Cleese | 06/01/15 | 65000.00 | 8 |
Eric Idle | 05/12/14 | 45000.00 | 10 |
Terry Jones | 11/01/13 | 70000.00 | 3 |
Terry Gilliam | 08/12/14 | 48000.00 | 7 |
Michael Palin | 05/23/13 | 66000.00 | 8 |
將 CSV 文件讀入 pandas DataFrame 快速而直接:
import pandas df = pandas.read_csv('hrdata.csv') print(df)
就這樣簡單:僅僅三行代碼,而且其中只有一行真正有用。pandas.read_csv() 打開、分析并讀取提供的 CSV 文件,并將數(shù)據(jù)存儲在 DataFrame 中,打印 DataFrame 會產(chǎn)生以下輸出:
以下是值得注意的幾點:
首先,pandas 識別到 CSV 的第一行包含列名,并自動使用它們。
但是,pandas 也在 DataFrame 中使用從零開始的整數(shù)索引,那是因為沒有告訴它我們的索引應(yīng)該是什么。
此外,如果查看列的數(shù)據(jù)類型,會看到 pandas 已將 Salary and Sick Days 剩余列正確轉(zhuǎn)換為數(shù)字,但 Hire Date 列仍然是 String,這在交互模式下很容易確認:
讓我們一次解決這些問題,要使用其他列作為 DataFrame 的索引,添加 index_col 可選參數(shù):
df2 = pandas.read_csv('hrdata.csv', index_col='Name') print(df2)
現(xiàn)在,Name 字段就是我們的 DataFrame 索引:
接下來,讓我們修復(fù)「Hire Date」字段的數(shù)據(jù)類型??梢允褂?parse_dates 可選參數(shù)強制pandas 將數(shù)據(jù)作為日期讀取,該參數(shù)定義為要作為日期處理的列名列表:
df3 = pandas.read_csv('hrdata.csv', index_col='Name', parse_dates=['Hire Date']) print(df3)
注意輸出的差異:
現(xiàn)在日期格式正確,可以在交互模式下輕松確認:
如果 CSV 文件的第一行中沒有列名,則可以使用 names 可選參數(shù)來提供列名的列表。 如果要覆蓋第一行中提供的列名,也可以使用此選項。 在這種情況下,還必須使用header = 0可選參數(shù)告訴 pandas.read_csv()忽略現(xiàn)有列名:
df4 = pandas.read_csv('hrdata.csv', index_col='Employee', parse_dates=['Hired'], header=0, names=['Employee', 'Hired','Salary', 'Sick Days']) print(df4)
請注意,由于列名稱已更改,因此還必須更改index_col和parse_dates可選參數(shù)中指定的列,現(xiàn)在這會產(chǎn)生以下輸出:
2. 使用 pandas 寫入 CSV 文件
當(dāng)然,如果無法將數(shù)據(jù)從 pandas 中輸出,那 pandas 可能沒有多大好處。將 DataFrame 寫入CSV 文件就像讀取一個文件一樣簡單。下面讓我們將帶有新列名稱的數(shù)據(jù)寫入新的 CSV 文件:
df5 = pandas.read_csv('hrdata.csv', index_col='Employee', parse_dates=['Hired'], header=0, names=['Employee', 'Hired', 'Salary', 'Sick Days']) df5.to_csv('hrdata_modified.csv')
此代碼與上述讀取代碼之間的唯一區(qū)別是 print(df) 替換為 df.to_csv(),新的 CSV 文件如下所示:
參考此文章連接
到此這篇關(guān)于python pandas 解析(讀取、寫入) CSV 文件的文章就介紹到這了,更多相關(guān)python pandas 解析CSV 文件內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
TensorFlow神經(jīng)網(wǎng)絡(luò)優(yōu)化策略學(xué)習(xí)
這篇文章主要介紹了TensorFlow神經(jīng)網(wǎng)絡(luò)優(yōu)化策略2018-03-03Pandas數(shù)據(jù)結(jié)構(gòu)中Series屬性詳解
本文主要介紹了Pandas數(shù)據(jù)結(jié)構(gòu)中Series屬性詳解,文中通過示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下2022-04-04python中plot實現(xiàn)即時數(shù)據(jù)動態(tài)顯示方法
這篇文章主要為大家詳細介紹了python中plot實現(xiàn)即時數(shù)據(jù)動態(tài)顯示方法,具有一定的參考價值,感興趣的小伙伴們可以參考一下2018-06-06Python中的 sort 和 sorted的用法與區(qū)別
這篇文章主要介紹了Python中的 sort 和 sorted的用法與區(qū)別,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下2019-08-08