日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

python对excel操作简书_Python实现EXCEL常用操作——pandas简介

發布時間:2025/3/19 python 16 豆豆
生活随笔 收集整理的這篇文章主要介紹了 python对excel操作简书_Python实现EXCEL常用操作——pandas简介 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

知乎的代碼塊太丑了,這里的內容就更新到簡書了Python實現EXCEL常用操作——pandas簡介?www.jianshu.com

EXCEL是日常辦公最常用的軟件,然而遇到數據量特別大(超過10W條)或者需要很復雜的公式時就顯得沒那么方便了(卡卡卡),我也是被EXCEL折磨了很多次以后才決定學習Python,從此便一發不可收拾,深深的理解了那句話“Life is short, you need Python”,下面就總結一些python替代EXCEL的常用操作,方便大家學習,當然咯,EXCLE的功能特別多,所以帖子會持續更新。。。

本例數據集采用某地森林大火數據,共有13個特征,X和Y代表地理位置,month代表月份,day代表星期幾,FFMC代表細小可燃物濕度碼,DMC代表粗腐殖質濕度碼,DC代表干旱碼,ISI代表初始蔓延指數,temp代表溫度,RH代表相對濕度,wind代表風速,rain代表降雨量,area代表地區,文件稍后會上傳到百度云

一、打開文件

#導入相關庫

import pandas as pd

import numpy as np

import os

from pandas import DataFrame,Series

import re

1)源文件有列名

df =pd.read_csv(r'E:\work\daima\python\forestfires.csv') #打開文件

2)若源文件沒有列名

df=pd.read_csv(r'E:\work\daima\python\forestfires.csv',header=None)#分配默認的列名

df=pd.read_csv(r'E:\work\daima\python\forestfires.csv' ,sep=',',

names=['X', 'Y', 'month', 'day', 'FFMC', 'DMC', 'DC',

'ISI', 'temp', 'RH','wind', 'rain', 'area']) #自定義列名

3)讀取文件某幾列

df=pd.read_csv(r'E:\work\daima\python\forestfires.csv',nrows=5) #只讀前5行

df=pd.read_csv(r'E:\work\daima\python\forestfires.csv',skiprows=[0,2,3]) #跳過第0,2,3行讀取文件

二、數據基本處理

1)對列進行操作

print(df.columns) #查看列名

print(df.dtypes) #查看各列數據類型

print(df.head(20)) #查看前20行數據

df=df.loc[:,'FFMC':'rain'] #選擇FFMC到rain列所有數據

df=df['new']=1.5 #增加新列并賦值1.5

df=df.drop(['wind', 'rain', 'area'],axis=1) #刪除wind,rain和area三列

2)缺失值處理

df[df.isnull().values==True] #顯示有缺失值的行

df['month'][df.month.isnull()]='U0' #month缺失值填充為U0

df['DC'][df.DC.isnull()]=df['DC'].median() #DC列缺失值填充為DC列的中位數

df.dropna()#刪除含有缺失值的行

df.dropna(how='all')#只丟棄全為NA的那些行

3)計算某列變量頻數

print(df['month'].unique()) #輸出month列唯一值

print(df['month'].value_counts()) #輸出month列各變量出現頻數

4)移除重復數據

df_new=df.drop_duplicates(['month','day']) #移除month和day列包含重復值得行,保留第一個

df_new=df.drop_duplicates(['month'],take_last=True )#移除month列包含重復值得行,保留最后一個

三、篩選

1)條件篩選loc

df_sel=df.loc[(df['month']=='aug') & (df['DC']>=600)] #篩選month列等于aug且DC列大于600的所有行

2)篩選并給新列賦值

這個多用于區間匹配,例如如果A列(0,100],C列為50;A列大于100 ,C列為A列的值

df.loc[(df['DC']>0) & (df['DC']<=100) ,'DC_na']=50 # 創建新列DC_na,DC列大于0且小于等于100,DC列為50

df.loc[df['DC']>100,'DC_na']=df['DC']# 創建新列DC_na,DC列大于100等于原值,其他為NA

3)模糊篩選/精確篩選:isin(),contains()

df_sel1=df[df['day'].str.contains('fr')] # 篩選day列包含fr字符的行

df_sel2=df[df['day'].isin(['fri','mon'])] # 篩選day列等于fri或mon的行

四、提取字符或數字

這個情況很多,涉及到很多正則表達式知識,今后會持續補充

df['xin']='U34' #增加新列,列名為xin,為新列賦值U34

df['zimu']=df['xin'].map(lambda s:re.compile("([0-9]+)").search(s).group())#提取數字

df['shuzi']=df['xin'].map(lambda s:re.compile("[a-zA-Z]+").search(s).group()[0])#提取字母

五、匹配

比如有以下兩個數據集

df1 客戶信息表customer_idsexcity

10084 男北京

10085 女上海

10086 男廣州

10087 女深圳

df2訂單表ordercustomer_idproductshouru

CH000110086 A 500

CH000210086 B 200

CH000310085 C 1000

CH000410084 D 3000

1)左關聯

df_merge=pd.merge(df1,df2,on='customer_id',how='left') #左關聯

print(df_merge)

注意第三四列,與EXCEL匹配的邏輯稍有不同

2)根據多列進行左關聯

這個暫時不舉例了,遇到這種情況再說

pd.merge(df1,df2,on=['key1','key2'],how='left')#多鍵連接

六、聚合(數據透視表)

類似于數據透視表

類似于sumifs(),countifs(),averageifs()等函數的效果

1)聚合groupby()

df_group=df['DC'].groupby([df['month'],df['day']]) #根據month和day列對DC列進行聚合

df_fun=df_gorup.agg(['sum','mean','std']) #對df_group求和,均值和標準差

print(df_fun)

2)數據透視表pd.pivot_table()

這個函數比較難記,可以參考EXCEL數據透視表去理解,index代表列,columns代表行,values代表值,aggfunc代表要對值用什么函數,fil_value代表缺失值用0填充

df_toushi=pd.pivot_table(df,index=['month'],columns=['day'],

values=['DC'],aggfunc=[np.sum,np.mean],fill_value=0)

print(df_toushi)

七、排序

按照DMC列降序,DC列升序對數據集進行排序

df_paixu=df.sort_values(by=['DMC','DC'],ascending=[0,1])

八、時間序列處理

注:源數據沒有時間字段,本例進攻參考

csv中的時間會被讀取為字符串,需要批量處理為pandas可處理的時間類型

df['date']=pd.to_datetime(df['createTime']) #批量轉換createTime中的時間,并賦值到date列

df[(df['date']>='20140701')&(df['date']<='20140715')]#篩選指定時間段數據

總結

以上是生活随笔為你收集整理的python对excel操作简书_Python实现EXCEL常用操作——pandas简介的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。