panda之excel操作總結(個人總結)

2021-10-08 11:26:02 字數 4494 閱讀 4265

收集了一些經濟資料,這個是關於excel的一部分總結

在特定位置插入列

data.

insert(2

,'c',''

)# 2 :插入的列的位置

# 『c':待插入列的列名

# 『 』:插入的值,這裡插入的是空值

data

out[56]

: a b c01

2134

#################

data.

insert(0

,'d',[

1,2]

) data

out[71]

: d a b c01

1212

34

修改行索引和列索引的資料型別及大小寫

excelframe.index.

astype

(float)# 修改索引的資料型別,也就是行索引

excelframe.columns =

[str

(x)for x in excelframe.columns] # 統一資料列名稱的屬性為string

columnlist = excelframe.columns.values.

tolist

() # change clonmu to list

data.columns =

[x.lower()

for x in data.columns]

合併兩個frame

ret = pd.

concat

([df, result]).

fillna(0

) # fill none with

0

將行與列索引轉換為list

dfname._stat_axis.values.

tolist

() # 行名稱

dfname.columns.values.

tolist

() # 列名稱

判斷內容是否為nan

pandas基於numpy,所以其中的空值nan和numpy.nan是等價的。numpy中的nan並不是空物件,其實際上是numpy.float64物件,所以我們不能誤認為其是空物件,從而用bool(np.nan)去判斷是否為空值,這是不對的。 對於pandas中的空值,我們該如何判斷,並且有哪些我們容易掉進去的陷阱,即不能用怎麼樣的方式去判斷呢?

可以判斷pandas中單個空值物件的方式:

1、利用pd.isnull(),pd.isna();

2、利用np.isnan();

3、利用is表示式;

4、利用in表示式。

不可以用來判斷pandas單個空值物件的方式:

1、不可直接用==表示式判斷;

2、不可直接用bool表示式判斷;

3、不可直接用if語句判斷。

對於同時多個空值物件的判斷和處理:

1、可以用series物件和dataframe物件的any()或all()方法;

2、可以用numpy的any()或all()方法;

3、不可以直接用python的內建函式any()和all()方法;

4、可以用series或dataframe物件的dropna()方法剔除空值;

5、可以用series或dataframe物件的fillna()方法填充空值。

示例:

import pandas as pd

import numpy as np

na=np.nan

# 可以用來判斷空值的方式

pd.isnull

(na) # true

pd.isna

(na) # true

np.isnan

(na) # true

na is np.nan # true

na in

[np.nan] # true

# 不可以直接用來判斷的方式,即以下結果和我們預期不一樣

na == np.nan # false

bool

(na) # true

if na:

print

('na is not null'

) # output: na is not null

# 不可以直接用python內建函式any和all

any(

[na]

) # true

all(

[na]

) #true

# dataframe 訪問操作

data = pd.

dataframe

(np.

arange(16

).reshape(4

,4),index =

list

("abcd"

),columns=

list

('wxyz'))

print

(data)

print

(data[0:

2]) #取前兩行資料

print

('+++++++++++++1111'

)print

(len

(data)

) #求出一共多少行

print

(data.columns.size) #求出一共多少列

print

('+++++++++++++2222'

)print

(data.columns) #列索引名稱

print

(data.index) #行索引名稱

print

('+++++++++++++3333'

)print

(data.iloc[1]

) #取第2行資料

print

('+++++++++++++444'

)print

(data[

'x']

) #取列索引為x的一列資料

print

(data.loc[

'a']

) #取第行索引為」a「的一行資料,

print

('+++++++++++++555'

)print

(data.loc[:,

['x'

,'z']]

) #表示選取所有的行以及columns為a,b的列;

print

(data.loc[

['a'

,'b'],

['x'

,'z']]

) #表示選取'a'和'b'這兩行以及columns為x,z的列的並集;

print

('+++++++++++++6666'

)print

(data.iloc[1:

3,1:

3]) #資料切片操作,切連續的資料塊

print

(data.iloc[[0

,2],

[1,2

]]) #即可以自由選取行位置,和列位置對應的資料,切零散的資料塊

print

('+++++++++++++7777'

)print

(data[data>2]

) #表示選取資料集中大於0的資料

print

(data[data.x>5]

) #表示選取資料集中x這一列大於5的所有的行

print

('+++++++++++++8888'

)a1 = data.

copy()

print

(a1[a1[

'y']

.isin([

'6',

'10'])

]) #表顯示滿足條件:列y中的值包含'6'

,'8'的所有行。

print

('+++++++++++++9999'

)print

(data.

mean()

) #預設對每一列的資料求平均值;若加上引數a.

mean(1

)則對每一行求平均值;

print

(data[

'x']

.value_counts()

) #統計某一列x中各個值出現的次數:

print

('+++++++++++++101010'

)print

(data.

describe()

) #對每一列資料進行統計,包括計數,均值,std,各個分位數等。

python統計excel利用pandans的分組

python統計excel利用pandans的分組,其中還用列表資料求差集 csv資料結構 有三個按照日期統計的csv 需要統計出這三張csv按照areaid缺少的type和bdtype 其中type 1,2,3,4 bdtype 1,3,4 原始碼如下 第一步資料初步處理刪除非必須列 coding...

Panda查常用操作

參考部落格原址 用train data train data.convert objects convert numeric true 即可 def a x,y print s s x,y 不同的索引 loc 通過行標籤索引行資料 iloc 通過行號索引行資料 ix 通過行標籤或者行號索引行資料 基...

ASP操作Excel技術總結

三 asp操作excel生成資料表 1 在乙個範圍內插入資料 objexcelsheet.range b3 k3 value array 67 87 5 9 7 45 45 54 54 10 2 在乙個單元格內插入資料 objexcelsheet.cells 3,1 value internet e...