中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

怎么用python實現文件讀寫和數據清洗

發布時間:2022-08-25 11:17:47 來源:億速云 閱讀:158 作者:iii 欄目:開發技術

這篇文章主要介紹“怎么用python實現文件讀寫和數據清洗”,在日常操作中,相信很多人在怎么用python實現文件讀寫和數據清洗問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”怎么用python實現文件讀寫和數據清洗”的疑惑有所幫助!接下來,請跟著小編一起來學習吧!

一、文件操作

  • pandas內置了10多種數據源讀取函數,常見的就是CSV和EXCEL

  • 使用read_csv方法讀取,結果為dataframe格式

  • 在讀取csv文件時,文件名稱盡量是英文

  • 讀取csv時,注意編碼,常用編碼為utf-8、gbk 、gbk2312和gb18030等

  • 使用to_csv方法快速保存

1.1 csv文件讀寫

#讀取文件,以下兩種方式:
#使用pandas讀入需要處理的表格及sheet頁
import pandas as pd
df = pd.read_csv("test.csv",sheet_name='sheet1') #默認是utf-8編碼
#或者使用with關鍵字
with open("test.csv",encoding="utf-8")as df: 
    #按行遍歷
    for row in df:
        #修正
        row = row.replace('陰性','0').replace('00.','0.')
        ...
        print(row)

#將處理后的結果寫入新表
#建議用utf-8編碼或者中文gbk編碼,默認是utf-8編碼,index=False表示不寫出行索引
df.to_csv('df_new.csv',encoding='utf-8',index=False)

1.2 excel文件讀寫

#讀入需要處理的表格及sheet頁
df = pd.read_excel('測試.xlsx',sheet_name='test')  
df = pd.read_excel(r'測試.xlsx') #默認讀入第一個sheet

#將處理后的結果寫入新表
df1.to_excel('處理后的數據.xlsx',index=False)

二、數據清洗

2.1 刪除空值

# 刪除空值行
# 使用索引
df.dropna(axis=0,how='all')#刪除全部值為空的行
df_1 = df[df['價格'].notna()] #刪除某一列值為空的行
df = df.dropna(axis=0,how='all',subset=['1','2','3','4','5'])# 這5列值均為空,刪除整行
df = df.dropna(axis=0,how='any',subset=['1','2','3','4','5'])#這5列值任何出現一個空,即刪除整行

2.2 刪除不需要的列

# 使用del, 一次只能刪除一列,不能一次刪除多列 
del df['sample_1']  #修改源文件,且一次只能刪除一個
del df[['sample_1', 'sample_2']]  #報錯

#使用drop,有兩種方法:
#使用列名
df = df.drop(['sample_1', 'sample_2'], axis=1) # axis=1 表示刪除列
df.drop(['sample_1', 'sample_2'], axis=1, inplace=True) # inplace=True, 直接從內部刪除
#使用索引
df.drop(df.columns[[0, 1, 2]], axis=1, inplace=True) # df.columns[ ] #直接使用索引查找列,刪除前3列

2.3 刪除不需要的行

#使用drop,有兩種方法:
#使用行名
df = df.drop(['行名1', '行名2']) # 默認axis=0 表示刪除行
df.drop(['行名1', '行名2'], inplace=True) # inplace=True, 直接從內部刪除
#使用索引
df.drop(df.index[[1, 3, 5]]) # df.index[ ]直接使用索引查找行,刪除1,3,5行
df = df[df.index % 2 == 0]#刪除偶數行

2.4 重置索引

#在刪除了行列數據后,造成索引混亂,可通過 reset_index重新生成連續索引
df.reset_index()#獲得新的index,原來的index變成數據列,保留下來
df.reset_index(drop=True)#不想保留原來的index,使用參數 drop=True,默認 False
df.reset_index(drop=True,inplace=True)#修改源文件
#使用某一列作為索引
df.set_index('column_name').head()

2.5 統計缺失

#每列的缺失數量
df.isnull().sum()
#每列缺失占比
df3.isnull().sum()/df.shape[0]
#每行的缺失數量
df3.isnull().sum(axis=1)
#每行缺失占比
df3.isnull().sum(axis=1)/df.shape[1]

2.6 排序

#按每行缺失值進行降序排序
df3.isnull().sum(axis=1).sort_values(ascending=False)
#按每列缺失率進行降序排序
(df.isnull().sum()/df.isnull().count()).sort_values(ascending=False)

到此,關于“怎么用python實現文件讀寫和數據清洗”的學習就結束了,希望能夠解決大家的疑惑。理論與實踐的搭配能更好的幫助大家學習,快去試試吧!若想繼續學習更多相關知識,請繼續關注億速云網站,小編會繼續努力為大家帶來更多實用的文章!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

大姚县| 宾川县| 克东县| 游戏| 元朗区| 孟津县| 闻喜县| 西盟| 东乡县| 山东省| 太仆寺旗| 延吉市| 宁阳县| 长岭县| 蒙山县| 修文县| 克山县| 光泽县| 海口市| 安仁县| 砀山县| 邢台县| 琼中| 甘南县| 通化市| 巴彦县| 景东| 水城县| 桐城市| 安陆市| 凤阳县| 祁连县| 浦北县| 望都县| 临泽县| 博爱县| 琼中| 始兴县| 宣化县| 西华县| 鹿泉市|