天天看點

python pandas 讀取excel 去重某一列_Python中Pandas讀取修改excel操作攻略(代碼示例)...

本篇文章給大家帶來的内容是關于Python中Pandas讀取修改excel操作攻略(代碼示例),有一定的參考價值,有需要的朋友可以參考一下,希望對你有所幫助。

環境:python 3.6.8

以某米賽爾号舉個例子吧:

python pandas 讀取excel 去重某一列_Python中Pandas讀取修改excel操作攻略(代碼示例)...
python pandas 讀取excel 去重某一列_Python中Pandas讀取修改excel操作攻略(代碼示例)...

>>> pd.read_excel('1.xlsx', sheet_name='Sheet2')

名字 等級 屬性1 屬性2 天賦

0 四九幻曦 100 自然 None 21

1 聖甲狂戰 100 戰鬥 None 0

2 時空界皇 100 光 次元 27

我們在這裡使用了pd.read_excel()函數來讀取excel,來看一下read_excel()這個方法的API,這裡隻截選一部分經常使用的參數:pd.read_excel(io, sheet_name=0, header=0, names=None, index_col=None, usecols=None)io:很明顯, 是excel檔案的路徑+名字字元串

(有中文的話python2的老鐵需要使用decode()來解碼成unicode字元串)

例如:>>> pd.read_excel('例子'.decode('utf-8))sheet_name:傳回指定的sheet

如果将sheet_name指定為None,則傳回全表

如果需要傳回多個表, 可以将sheet_name指定為一個清單, 例如['sheet1', 'sheet2']

可以根據sheet的名字字元串或索引來值指定所要選取的sheet>>> # 如:

>>> pd.read_excel('1.xlsx', sheet_name=0)

>>> pd.read_excel('1.xlsx', sheet_name='Sheet1')

>>> # 傳回的是相同的 DataFrameheader:指定資料表的表頭,預設值為0, 即将第一行作為表頭usecols:讀取指定的列, 也可以通過名字或索引值>>> # 如:

>>> pd.read_excel('1.xlsx', sheet_name=1, usecols=['等級', '屬性1'])

>>> pd.read_excel('1.xlsx', sheet_name=1, usecols=[1,2])

>>> # 傳回的是相同的 DataFrame

直到某一天泰格爾升了一級, 可以這樣改一下, 當然用.iloc或.loc對象都可以>>> # 讀取檔案

>>> data = pd.read_excel("1.xlsx", sheet_name="Sheet1")

>>> # 找到 等級 這一列,再在這一列中進行比較

>>> data['等級'][data['名字'] == '泰格爾'] += 1

>>> print(data)

LOOK!他更新了!!>>> data

名字 等級 屬性1 屬性2 天賦

0 艾歐裡娅 100 自然 冰 29

1 泰格爾 81 電 戰鬥 16

2 布魯克克 100 水 None 28

現在我們将它儲存data.to_excel('1.xlsx', sheet_name='Sheet1', index=False, header=True)index:預設為True, 是否加行索引, 直接上圖吧!

python pandas 讀取excel 去重某一列_Python中Pandas讀取修改excel操作攻略(代碼示例)...

左為False, 右為Trueheader:預設為True, 是否加列标, 上圖吧!

python pandas 讀取excel 去重某一列_Python中Pandas讀取修改excel操作攻略(代碼示例)...

左為False, 右為True而io, sheet_name參數用法同函數pd.read_excel()

如果我們多捕捉幾隻或者多加幾種屬性怎麼辦呢?這裡給出參考:新增列資料:

data['列名稱'] = [值1, 值2, ......]>>> data['特性'] = ['瞬殺', 'None', '炎火']

>>> data

名字 等級 屬性1 屬性2 天賦 特性

0 艾歐裡娅 100 自然 冰 29 瞬殺

1 泰格爾 80 電 戰鬥 16 None

2 布魯克克 100 水 None 28 炎火

新增行資料,這裡行的num為excel中自動給行加的id數值

data.loc[行的num] = [值1, 值2, ...], (注意與.iloc的差別)>>> data.loc[3] = ['小火猴', 1, '火', 'None', 31, 'None']

>>> data

名字 等級 屬性1 屬性2 天賦 特性

0 艾歐裡娅 100 自然 冰 29 瞬殺

1 泰格爾 80 電 戰鬥 16 None

2 布魯克克 100 水 None 28 炎火

3 小火猴 1 火 None 31 None

說完了增加一行或一列,那怎樣删除一行或一列呢?可以使用.drop()函數>>> # 删除列, 需要指定axis為1,當删除行時,axis為0

>>> data = data.drop('屬性1', axis=1) # 删除`屬性1`列

>>> data

名字 等級 屬性2 天賦 特性

0 艾歐裡娅 100 冰 29 瞬殺

1 泰格爾 80 戰鬥 16 None

2 布魯克克 100 None 28 炎火

3 小火猴 1 None 31 None

>>> # 删除第3,4行,這裡下表以0開始,并且标題行不算在類, axis用法同上

>>> data = data.drop([2, 3], axis=0)

>>> data

名字 等級 屬性2 天賦 特性

0 艾歐裡娅 100 冰 29 瞬殺

1 泰格爾 80 戰鬥 16 None

>>> # 儲存

>>> data.to_excel('2.xlsx', sheet_name='Sheet1', index=False, header=True)