pandas處理excel文件和csv文件

一、csv文件

csv以純文本形式存儲表格數據

pd.read_csv('文件名'),可添加參數engine='python',encoding='gbk'

一般來說,windows系統的默認編碼為gbk,可在cmd窗口通過chcp查看活動頁代碼,936即代表gb2312。

例如我的電腦默認編碼時gb2312,pycharm默認是utf-8編碼,csv內存在中文時會出現錯誤,可通過指定engine或編碼格式解決。

?

二、excel文件

之前博客寫過通過xlrd和xlwt讀寫xls文件、通過openpyxl讀寫xlsx文件,而pandas即可處理xls文件、也可處理xlsx文件。

pandas讀取的excel結果為一個DataFrame對象,因此DataFrame的許多方法都會被用到,學習DataFrame?https://www.cnblogs.com/Forever77/p/11209186.html。

pd.read_excel('文件名'),默認讀取文件的第一個sheet頁,并將第一行當作column,添加一行從0開始的整數作為index。

常用參數sheet_name='':表示讀取文件的哪個sheet頁,可以為sheet頁名稱,也可以使用數字,0表示第一個sheet頁;None會讀取所有有內容的sheet頁。結果為一個字典,字典的key為sheet頁名稱,value為sheet頁內容;默認讀取第一個sheet頁

index_col:將哪一列當作index列,默認添加一列從0開始的整數作為index,通過指定index_col='列名'指定索引列

header:將哪一行當作表頭,即DataFrame的columns,默認將sheet頁的第一行當作表頭,header=1則將第二行當做表頭

?

假設有一個excel表格內容如下圖1,使用pandas讀取結果分別如下。

import pandas as pd
df = pd.read_excel('fruit.xlsx')
print(df)
print(df.values)
print(df['名稱'])
print(df.loc[1])
print(df.loc[2,'單價/元'])

? ? ??? ?? ??

?

①df = pd.read_excel('fruit.xlsx'),表示通過pandas讀取excel并加載為DataFrame,從圖2可以看出如果讀取時不設置索引,pandas會自動生成一列,該列值從0開始,表示行索引。

②圖2中紅框中的部分即為DataFrame的值,可通過df.values獲取,結果如圖3,類似列表的形式,數據類型為<class 'numpy.ndarray'>;

③圖2數據部分有三列,列的名字為第一行的內容,即列索引,可通過df[列名]獲取某一列的內容,結果如圖4所示;

④pandas自動生成的行索引從0開始,可通過pd.loc[n]獲取索引值為n的行的內容,結果如圖5所示;

⑤通過pd.loc[行索引,列索引]可獲取具體單元格的內容,結果如圖6所示。

?

可通過df.set_index(列名)自行設定索引,如下示例

import pandas as pd
df = pd.read_excel('fruit.xlsx')  #也可在讀取時直接設置index_col='名稱'
df = df.set_index('名稱')   #設置名稱列為行索引
print(df)
print(df.values)
print(df['庫存/kg'])
print(df.loc['草莓'])
print(df.loc['香蕉','單價/元'])

?

????????

?

將DataFrame格式的數據寫入excel

第一步:writer = pd.ExcelWriter('文件路徑和名稱'),文件名稱必須指定,默認保存在當前文件的相同目錄,文件名稱需包含后綴名且只能為xls或xlsx

第二步:df.to_excel(writer,'sheet頁名稱'),sheet頁參數可不指定,默認為Sheet1

第三步:writer.save()

?

轉載于:https://www.cnblogs.com/Forever77/p/11298173.html

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/391897.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/391897.shtml
英文地址,請注明出處:http://en.pswp.cn/news/391897.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

tukey檢測_回到數據分析的未來:Tukey真空度的整潔實現

tukey檢測One of John Tukey’s landmark papers, “The Future of Data Analysis”, contains a set of analytical techniques that have gone largely unnoticed, as if they’re hiding in plain sight.John Tukey的標志性論文之一&#xff0c;“ 數據分析的未來 ”&#x…

spring— Spring與Web環境集成

ApplicationContext應用上下文獲取方式 應用上下文對象是通過new ClasspathXmlApplicationContext(spring配置文件) 方式獲取的&#xff0c;但是每次從容器中獲 得Bean時都要編寫new ClasspathXmlApplicationContext(spring配置文件) &#xff0c;這樣的弊端是配置文件加載多次…

Elasticsearch集群知識筆記

Elasticsearch集群知識筆記 Elasticsearch內部提供了一個rest接口用于查看集群內部的健康狀況&#xff1a; curl -XGET http://localhost:9200/_cluster/healthresponse結果&#xff1a; {"cluster_name": "format-es","status": "green&qu…

Item 14 In public classes, use accessor methods, not public fields

在public類中使用訪問方法&#xff0c;而非公有域 這標題看起來真晦澀。。解釋一下就是&#xff0c;如果類變成public的了--->那就使用getter和setter&#xff0c;不要用public成員。 要注意它的前提&#xff0c;如果是private的class&#xff08;內部類..&#xff09;或者p…

子集和與一個整數相等算法_背包問題的一個變體:如何解決Java中的分區相等子集和問題...

子集和與一個整數相等算法by Fabian Terh由Fabian Terh Previously, I wrote about solving the Knapsack Problem (KP) with dynamic programming. You can read about it here.之前&#xff0c;我寫過有關使用動態編程解決背包問題(KP)的文章。 你可以在這里閱讀 。 Today …

matplotlib圖表介紹

Matplotlib 是一個python 的繪圖庫&#xff0c;主要用于生成2D圖表。 常用到的是matplotlib中的pyplot&#xff0c;導入方式import matplotlib.pyplot as plt 一、顯示圖表的模式 1.plt.show() 該方式每次都需要手動show()才能顯示圖表&#xff0c;由于pycharm不支持魔法函數&a…

到2025年將保持不變的熱門流行技術

重點 (Top highlight)I spent a good amount of time interviewing SMEs, data scientists, business analysts, leads & their customers, programmers, data enthusiasts and experts from various domains across the globe to identify & put together a list that…

spring—SpringMVC的請求和響應

SpringMVC的數據響應-數據響應方式 頁面跳轉 直接返回字符串 RequestMapping(value {"/qq"},method {RequestMethod.GET},params {"name"})public String method(){System.out.println("controller");return "success";}<bea…

Maven+eclipse快速入門

1.eclipse下載 在無外網情況下&#xff0c;無法通過eclipse自帶的help-install new software輸入url來獲取maven插件&#xff0c;因此可以用集成了maven插件的免安裝eclipse(百度一下有很多)。 2.jdk下載以及環境變量配置 JDK是向前兼容的&#xff0c;可在Eclipse上選擇編譯器版…

源碼閱讀中的收獲

最近在做短視頻相關的模塊&#xff0c;于是在看 GPUImage 的源碼。其實有一定了解的伙伴一定知道 GPUImage 是通過 addTarget 鏈條的形式添加每一個環節。在對于這樣的設計贊嘆之余&#xff0c;想到了實際開發場景下可以用到的場景&#xff0c;借此分享。 我們的項目中應該有很…

馬爾科夫鏈蒙特卡洛_蒙特卡洛·馬可夫鏈

馬爾科夫鏈蒙特卡洛A Monte Carlo Markov Chain (MCMC) is a model describing a sequence of possible events where the probability of each event depends only on the state attained in the previous event. MCMC have a wide array of applications, the most common of…

PAT乙級1012

題目鏈接 https://pintia.cn/problem-sets/994805260223102976/problems/994805311146147840 題解 就比較簡單&#xff0c;判斷每個數字是哪種情況&#xff0c;然后進行相應的計算即可。 下面的代碼中其實數組是不必要的&#xff0c;每取一個數字就可以直接進行相應計算。 // P…

我如何在昌迪加爾大學中心組織Google Hash Code 2019

by Neeraj Negi由Neeraj Negi 我如何在昌迪加爾大學中心組織Google Hash Code 2019 (How I organized Google Hash Code 2019 at Chandigarh University Hub) This is me !!! Neeraj Negi — Google HashCode Organizer這就是我 &#xff01;&#xff01;&#xff01; Neeraj …

leetcode 665. 非遞減數列(貪心算法)

給你一個長度為 n 的整數數組&#xff0c;請你判斷在 最多 改變 1 個元素的情況下&#xff0c;該數組能否變成一個非遞減數列。 我們是這樣定義一個非遞減數列的&#xff1a; 對于數組中所有的 i (0 < i < n-2)&#xff0c;總滿足 nums[i] < nums[i 1]。 示例 1: …

django基于存儲在前端的token用戶認證

一.前提 首先是這個代碼基于前后端分離的API,我們用了django的framework模塊,幫助我們快速的編寫restful規則的接口 前端token原理: 把(token加密后的字符串,keyname)在登入后發到客戶端,以后客戶端再發請求,會攜帶過來服務端截取(token加密后的字符串,keyname),我們再利用解密…

數據分布策略_有效數據項目的三種策略

數據分布策略Many data science projects do not go into production, why is that? There is no doubt in my mind that data science is an efficient tool with impressive performances. However, a successful data project is also about effectiveness: doing the righ…

cell 各自的高度不同的時候

1, cell 根據文字、圖片等內容&#xff0c;確定自己的高度。每一個cell有自己的高度。 2&#xff0c;tableView 初始化 現實的時候&#xff0c;不是從第一個cell開始顯示&#xff0c;&#xff08;從第二個&#xff1f;&#xff09;&#xff0c;非非正常顯示。 a:cell 的高度問題…

leetcode 978. 最長湍流子數組(滑動窗口)

當 A 的子數組 A[i], A[i1], …, A[j] 滿足下列條件時&#xff0c;我們稱其為湍流子數組&#xff1a; 若 i < k < j&#xff0c;當 k 為奇數時&#xff0c; A[k] > A[k1]&#xff0c;且當 k 為偶數時&#xff0c;A[k] < A[k1]&#xff1b; 或 若 i < k < j&…

spring boot源碼下載地址

github下載&#xff1a; https://github.com/spring-projects/spring-boot/tree/1.5.x git地址&#xff1a; https://github.com/spring-projects/spring-boot.git 因為項目中目前使用的就是spring boot 1.5.19版本&#xff0c;因此這里先研究spring boot 1.5版本源碼.轉載于:h…

java基礎學習——5、HashMap實現原理

一、HashMap的數據結構 數組的特點是&#xff1a;尋址容易&#xff0c;插入和刪除困難&#xff1b;而鏈表的特點是&#xff1a;尋址困難&#xff0c;插入和刪除容易。那么我們能不能綜合兩者的特性&#xff0c;做出一種尋址容易&#xff0c;插入刪除也容易的數據結構&#xff1…