網站首頁 編程語言 正文
優點:
- 方便,有專門支持讀取csv文件的pd.read_csv()函數。
- 將csv轉換成二維列表形式
- 支持通過列名查找特定列。
- 相比csv庫,事半功倍
1.讀取csv文件
import pandas as pd ? file="c:\data\test.csv" csvPD=pd.read_csv(file) ? df = pd.read_csv('data.csv', encoding='gbk') #指定編碼 ? ? read_csv()方法參數介紹 filepath_or_buffer:文件所在路徑 encoding :編碼,字符型,通常為'utf-8',如果中文讀取不正常,可以將encoding設為'gbk' sep:分隔符,默認為一個英文逗號,即',' delimiter :備選分隔符,如果指定了delimiter則sep失效 header :整數或者由整數組成的列表,以用來指定由哪一列或者哪幾列作為列名,默認為header=0,表示第一列作為列名 eg: ?pd.read_csv('data.csv', encoding='gbk', header=1) # 指定第二列作為列名 ? ? ?pd.read_csv('data.csv', encoding='gbk', header=[0,1,3]) ? ? ?pd.read_csv('data.csv', encoding='gbk', header=None) #表示不從文件數據中指定行作為列名,這是Pandas會自動生成從零開始的序列作為列名 ? names:一個列表,為數據額外指定列名。 pd.read_csv('data.csv', encoding='gbk', names=['第一列', '第二列', '第三列', '第四列'])
2.#指定列:通過索引指定列名獲取列
data_new[] 建立空表存儲行信息 for i in range(len(csvPD)): ? ? lst_new = [] ?# 建立空列表存儲行信息 ? ? if "未知版本" in str(csvPD['版本組件'][i]): ? ? ? ? print(csvPD['版本組件'][i]) ? ? ? ? # print(csvPD['匹配數量'][i]) ? ? ? ? # print(csvPD['git'][i]) ? ? ? ? # print(csvPD['來源鏈接'][i]) ? ? ? ? lst_new.append(csvPD['版本組件'][i]) ? ? ? ? lst_new.append(csvPD['匹配數量'][i]) ? ? ? ? lst_new.append(csvPD['git'][i]) ? ? ? ? lst_new.append(csvPD['來源鏈接'][i]) ? ? ? ? ? data_new.append(lst_new) ?# 添加每行信息
3.根據index查詢
條件:首先導入的數據必須的有index
或者自己添加吧,方法簡單,讀取excel
文件時直接加index_col
代碼示例:
import pandas as pd ? ? ? ? ? ? ? ? ? ? #導入pandas庫 ? excel_file = './try.xlsx' ? ? ? ? ? ? ? #導入excel數據 data = pd.read_excel(excel_file, index_col='姓名') ? ? ? ? #這個的index_col就是index,可以選擇任意字段作為索引index,讀入數據 print(data.loc['李四']) ? ? ? ? ? ? ? ?#使用loc函數來查找
4.已知數據在第幾行找到想要的數據
假如我們的表中,有某個員工的工資數據為空了,那我們怎么找到自己想要的數據呢。
代碼如下:
for i in data.columns: ? ? for j in range(len(data)): ? ? ? ? if (data[i].isnull())[j]: ? ? ? ? ? ? bumen = data.iloc[j, [0]] ? ? ? ? ? ? ? ? ? ? ? ? ? ? #找出缺失值所在的部門 ? ? ? ? ? ? data[i][j] = charuzhi(bumen)
首先檢索全部的數據,然后我們可以用pandas
中的iloc函數。上面的iloc[j, [2]]中j是具體的位置,【0】是你要得到的數據所在的column
"""根據條件查詢某行數據""" import pandas as pd ? ? ? ? ? ?#導入pandas庫 ? excel_file = './try.xlsx' ? ? ? ?#導入文件 data = pd.read_excel(excel_file) ? ? ?#讀入數據 ? print(data.loc[data['部門'] == 'A', ['姓名', '工資']]) ? ? #部門為A,打印姓名和工資 print(data.loc[data['工資'] < 3000, ['姓名','工資']]) ? ?#查找工資小于3000的人
若要把這些數據獨立生成excel文件或者csv文件:
添加以下代碼:
"""導出為excel或csv文件""" dataframe_1 = data.loc[data['部門'] == 'A', ['姓名', '工資']] dataframe_2 = data.loc[data['工資'] < 3000, ['姓名', '工資']] dataframe_1.to_excel('dataframe_1.xlsx') dataframe_2.to_excel('dataframe_2.xlsx') ? data.iloc[:,:2] ?#即全部行,前兩列的數據 ? ? data['columns'] ?#columns即你需要的字段名稱即可 #注意這列的columns不能是index的名稱 #如果要打印index的話就data.index data.columns ?#與上面的一樣 ? data.iloc[:10,:][data.工資>6000] #找出前11行里工資大于6000的所有人的信息了
5.指定單元格:1001A列23時的AQI值
keyWord="1001A" for i in range(len(csvPD)): ? ? if str(csvPD['hour'][i])=="23" and str(csvPD['type'][i])== "AQI": ? ? ? ? result=csvPD[keyWord][i] ? ? ? ? print(result) ? ? ? ??
解決遇到的"NAN":
- csv文件中:1001A站點0時的AQI為空白值,返回的結果為NAN
- NAN全稱:Not A Number
常規解決思路:
使用numpy
函數來判斷:np.isnan()
和 xxx is np.nan
通過運算操作判斷:任何數字乘上0都是0
讀取文件時加參數:pd.read_csv(file, keep_default_na=False)
原文鏈接:https://blog.csdn.net/baidu_31295661/article/details/122515200
相關推薦
- 2022-03-19 解決訪問不到Linux服務器中RabbitMQ管理頁面問題_Linux
- 2022-12-05 Python實現字符串模糊匹配方式_python
- 2022-12-24 Typescript中interface與type的相同點與不同點的詳細說明_基礎知識
- 2022-12-11 C語言冷知識之預處理字符串操作符詳解_C 語言
- 2022-04-08 python?selenium保存圖片最好的兩種方法_python
- 2022-03-29 jQuery實現小球點擊發射動畫_jquery
- 2022-06-14 Github?Copilot結合python的使用方法詳解_python
- 2022-01-07 event的srcelement和target
- 最近更新
-
- 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同步修改后的遠程分支