python實現excel的基本功能

2021-09-25 23:54:32 字數 2601 閱讀 4300

python和excel

檢視列數:data.shape[1]

檢視行數:data.shape[0]

檢視單元格數:data.size

檢視列名:data.columns

檢視某列:data['name']

檢視某行:data[1:2]

檢視某行:data.iloc[0]

檢視某列:data.loc[0]

檢視多個單元格:data.loc[[0,2],['***','yyy']] #可以數字也可以字母

檢視某塊:data.iloc[0:3,0:3] #只能數字

資訊篩選:data[(*** >= 20) & (yyy <= 30) & (data.yyy.isin(['a','b']))]

刪除行:data.drop([0,2,3,4,5])

刪除列:data.drop(columns=['***','yyy'])

刪除空值:data.dropna(how='any') data.dropna(how='all')

插入最後一列:data['new'] = 0

指定位置插入一列:data.insert(1,'new',0)

替換空值:data.fillna(0)

字串刪除空格:df["city"].str.strip()

更換大小寫: df["city"] = df['city'].str.lower()

更改列名稱:df.rename(columns=)

刪除重複值:df['city'].drop_duplicates()

替換:df['city'].replace('sh','shanghai')

設定索引列:df.set_index('id')

生成連續指定天數的日期:pd.date_range('20000101',periods=10)

排序: 按列排序:data.sort_values(by=['***','yyy'],ascending=[0,1])

按索引排序:df.sort_index()

替換某列的特定值:

for i in rane(data.shape[0]):

if data.loc[[i],['***']].values >= 10:

data.loc[[i],['***']] = 0

合併列:data['new'] = data['***'].map(str) + "-" + data['yyy'].map(str)

一列拆分多列:data['***_split'] = data['***'].str.split('-')

data['***_split1'] = data['***_split'].str[0]

data['***_split2'] = data['***_split'].str[1]

內容匹配:data = pd.merge(data1,data2,how='left',on=['***','yyy'])

數字格式處理:data['***'] = data['***'].astype(int)

透視表:

data = pd.pivot_table(data,index=['x','xx'],columns = ['y','yy'],values=['z','zz'],aggfunc=[np.sum,np.mean,len],margins=true)

df2=df.groupby(['月份','區域'])[['銷售額','成本']].agg('sum')

df3 = pd.pivot_table(df, values=['銷售額', '成本'], index=['月份', '區域'] , aggfunc='sum')

分組: a.groupby('gender').sum()

a.groupby('gender').size()

vlookup:

禁用科學計數法:pd.set_option('display.float_format', lambda x: '%.2f' % x)

(1)資料透視表

def rank(x):

if x >= 90:

return 'a'

elif x >= 80:

return 'b'

elif x >= 70:

return 'c'

elif x >= 60:

return 'd'

else:

return 'e'

(2)跨表查詢,merge

(3)模糊匹配,近似查詢

excel: = vlookup(a2&" *",b:g,6,0)

python:

df1df3

df3['月折舊']=0

for i in range(len(df3['資產']):

df3['月折舊'][i] = df1[df1['資產'].map(lambda x :df3['資產'][i] in x)]['月折舊']

合併: contact:

frames = [df1,df2,df3]

result = pd.concat(frames)

merge: 類似於sql

join:left.join(right,on='key')

python實現excel 的lookup函式

sx customer 0409 pd.read excel r e lll sx customer 0409.xlsx 讀取資料 fx variable pd.read excel r e lll 202004 fx variable.xlsx 讀取分箱列表 定義lookup函式 deflooku...

Excel中神奇的vlookup函式之基礎應用

1 問題 如下示例,需要將右邊的 匹配上對應工號的銷售額。這屬於vlookup函式最基礎的單條件匹配應用,左邊表稱為a表。右邊表稱為b表。2 vlookup函式套路介紹 vlookup函式涉及到4個引數 根據什麼查詢你要匹配的內容,稱為查閱值,該引數 於b表。3 套用以上套路解決問題 該例子中,引數...

Python實現Excel隨機抽取數

有這樣一組資料 現在要隨機抽取十個數字,如下 import sys import xlrd import random print pm2.5 天津 開啟excel workbook xlrd.open workbook 2.xls 進入sheet excel sheet workbook.shee...