網站首頁 編程語言 正文
1. 使用 pandas 讀取 CSV 文件
原始數據包含了公司員工的數據:
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 文件,并將數據存儲在 DataFrame 中,打印 DataFrame 會產生以下輸出:
以下是值得注意的幾點:
首先,pandas 識別到 CSV 的第一行包含列名,并自動使用它們。
但是,pandas 也在 DataFrame 中使用從零開始的整數索引,那是因為沒有告訴它我們的索引應該是什么。
此外,如果查看列的數據類型,會看到 pandas 已將 Salary and Sick Days 剩余列正確轉換為數字,但 Hire Date 列仍然是 String,這在交互模式下很容易確認:
讓我們一次解決這些問題,要使用其他列作為 DataFrame 的索引,添加 index_col 可選參數:
df2 = pandas.read_csv('hrdata.csv', index_col='Name')
print(df2)
現在,Name 字段就是我們的 DataFrame 索引:
接下來,讓我們修復「Hire Date」字段的數據類型。可以使用 parse_dates 可選參數強制pandas 將數據作為日期讀取,該參數定義為要作為日期處理的列名列表:
df3 = pandas.read_csv('hrdata.csv', index_col='Name', parse_dates=['Hire Date'])
print(df3)
注意輸出的差異:
現在日期格式正確,可以在交互模式下輕松確認:
如果 CSV 文件的第一行中沒有列名,則可以使用 names 可選參數來提供列名的列表。 如果要覆蓋第一行中提供的列名,也可以使用此選項。 在這種情況下,還必須使用header = 0可選參數告訴 pandas.read_csv()忽略現有列名:
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可選參數中指定的列,現在這會產生以下輸出:
2. 使用 pandas 寫入 CSV 文件
當然,如果無法將數據從 pandas 中輸出,那 pandas 可能沒有多大好處。將 DataFrame 寫入CSV 文件就像讀取一個文件一樣簡單。下面讓我們將帶有新列名稱的數據寫入新的 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')
此代碼與上述讀取代碼之間的唯一區別是 print(df) 替換為 df.to_csv(),新的 CSV 文件如下所示:
參考此文章連接
原文鏈接:https://blog.csdn.net/qiuqiu1027/article/details/106405926
相關推薦
- 2022-09-01 MongoDB對Document(文檔)的插入、刪除及更新_MongoDB
- 2022-05-13 深度優先搜索之八皇后問題
- 2022-07-10 移動文件夾ubuntu
- 2022-08-17 C語言超全面講解字符串函數_C 語言
- 2022-06-02 了解Kubernetes中的Service和Endpoint_云和虛擬化
- 2022-05-12 HarmonyOS 單擊 雙擊 長按 滑動事件
- 2022-05-13 C++ DeviceIoControl 獲取硬盤序列號
- 2022-06-08 ASP.NET?Core中MVC模式實現路由二_實用技巧
- 最近更新
-
- window11 系統安裝 yarn
- 超詳細win安裝深度學習環境2025年最新版(
- Linux 中運行的top命令 怎么退出?
- MySQL 中decimal 的用法? 存儲小
- get 、set 、toString 方法的使
- @Resource和 @Autowired注解
- Java基礎操作-- 運算符,流程控制 Flo
- 1. Int 和Integer 的區別,Jav
- spring @retryable不生效的一種
- Spring Security之認證信息的處理
- Spring Security之認證過濾器
- Spring Security概述快速入門
- Spring Security之配置體系
- 【SpringBoot】SpringCache
- Spring Security之基于方法配置權
- redisson分布式鎖中waittime的設
- maven:解決release錯誤:Artif
- restTemplate使用總結
- Spring Security之安全異常處理
- MybatisPlus優雅實現加密?
- Spring ioc容器與Bean的生命周期。
- 【探索SpringCloud】服務發現-Nac
- Spring Security之基于HttpR
- Redis 底層數據結構-簡單動態字符串(SD
- arthas操作spring被代理目標對象命令
- Spring中的單例模式應用詳解
- 聊聊消息隊列,發送消息的4種方式
- bootspring第三方資源配置管理
- GIT同步修改后的遠程分支