收集了一些經濟資料,這個是關於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...