1. 程式人生 > 其它 >使用Pandas進行Excel讀寫

使用Pandas進行Excel讀寫

Excel讀寫(Pandas)

1、Series

一維資料,一列帶索引

pandas.Series(data, index, dtype, name, copy)
一組資料、索引、資料型別、設定名稱、拷貝資料(預設為False)
import pandas as pd

a = ["Go", "Python", "C#"]
myvar = pd.Series(a)
#指定索引
myvar2 = pd.Series(a, index = ["x", "y", "z"])  
print(myvar["y"]);print(myvar[1]);print(myvar[:3])
#字典形式生成
b = {1: "Go", 2: "Python", 3: "C#"}
myvar3 = pd.Series(b)
#切片,設定名稱
myvar = pd.Series(b, index = [1, 2], name="RUNOOB-Series-TEST" )

2、DataFrame

二維表格

import pandas as pd

#巢狀列表建立
data = [['Alex',10],['Bob',12],['Clarke',13]]
df = pd.DataFrame(data,columns=['Name','Age'])
#字典套列表模式建立
data = {'Name':['Tom', 'Jack', 'Steve', 'Ricky'],'Age':[28,34,29,42]}
df = pd.DataFrame(data, index = ["stu1", "stu2", "stu3"])

#列索引
print(df["Name"])
#新增列
#法1:使用df['列']=值,插入新的資料列
df['score']=pd.Series([10,20,30],index=["stu1", "stu2", "stu3"])
#法2 insert
df.insert(1,column='score',value=[91,90,75])
#刪除列
del df['one']
df.pop('two')

#行索引
print(df.loc["stu2"])
print(df[2:4])
#iloc 允許接受兩個引數分別是行和列,引數之間使用“逗號”隔開
print(df.iloc[2])
#在行末追加新資料行
df2 = pd.DataFrame([[5, 6], [7, 8]], columns = ['a','b'])
df = df.append(df2)
#刪除行
df = df.drop(0)
3.1、讀CSV

import pandas as pd
df = pd.read_csv('nba.csv')
#df=pd.read_csv("on.csv",index_col=['ID'])  指定列作為索引
print(df)
print(df.to_string())  #DataFrame型別資料

3.2、寫CSV
import pandas as pd
   
# 三個欄位 name, site, age
nme = ["Google", "Runoob", "Taobao", "Wiki"]
st = ["www.google.com", "www.runoob.com", "www.taobao.com", "www.wikipedia.org"]
ag = [90, 40, 80, 98]
   
# 字典
dict = {'name': nme, 'site': st, 'age': ag}
     
df = pd.DataFrame(dict)
 
# 儲存 dataframe
df.to_csv('site.csv')
4.1、讀Excel
import pandas as pd
#讀取excel資料
df = pd.read_excel('website.xlsx',index_col='name',skiprows=[2])
#處理未命名列
df.columns = df.columns.str.replace('Unnamed.*', 'col_label')
print(df)
4.2、寫入Excel
import pandas as pd
#建立DataFrame資料
info_website = pd.DataFrame()
#建立ExcelWrite物件
writer = pd.ExcelWriter('website.xlsx')
info_website.to_excel(writer)
writer.save()
print('輸出成功')