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ù)索引,那是因為沒有告訴它我們的索引應該是什么。
此外,如果查看列的數(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 索引:
接下來,讓我們修復「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 文件
當然,如果無法將數(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 文件如下所示:

參考此文章連接
到此這篇關于python pandas 解析(讀取、寫入) CSV 文件的文章就介紹到這了,更多相關python pandas 解析CSV 文件內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
TensorFlow神經(jīng)網(wǎng)絡優(yōu)化策略學習
這篇文章主要介紹了TensorFlow神經(jīng)網(wǎng)絡優(yōu)化策略2018-03-03
Pandas數(shù)據(jù)結(jié)構(gòu)中Series屬性詳解
本文主要介紹了Pandas數(shù)據(jù)結(jié)構(gòu)中Series屬性詳解,文中通過示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下2022-04-04
python中plot實現(xiàn)即時數(shù)據(jù)動態(tài)顯示方法
這篇文章主要為大家詳細介紹了python中plot實現(xiàn)即時數(shù)據(jù)動態(tài)顯示方法,具有一定的參考價值,感興趣的小伙伴們可以參考一下2018-06-06
Python中的 sort 和 sorted的用法與區(qū)別
這篇文章主要介紹了Python中的 sort 和 sorted的用法與區(qū)別,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下2019-08-08

