Fork me on GitHub

Numpy-Pandas

Morvan Numpy&Pandas知识点整理

Numpy

np.array([1,2,3],dtype=np.int)

np.empty((3,4))

np.zeros((3,4))

np.arange(12).reshape((3,4))

np.linspace(0,12,6) #0-12,6段

c = np.dot(a,b)

a = np.random.random((2,4))

np.argmin(a) #求最小值索引

np.argmax(a)

np.average()

np.median()

np.cunsum() #累加

np.diff() #相邻数字差

np.nonzero() #返回非0元素索引,前面是行,后面是列

np.sort() #无返回值,多用sorted(a)

np.transpose() #转置 a.T

np.clip(a,x1,x2) #a中小于x1为x1,大于x2为x2

for column in A.T:

​ print(column)

A.faltten() #展平

A.flat #展平迭代器

np.vstack((A,B)) #上下合并

np.hstack((A,B)) #左右合并

A=np.arrat([1,1,1])

A[np.newaxis,:] #行上加一个维度

A[:,np.newaxis] #列.....

np.concatenate((A,B), axis=0) #纵向合并(行)

np.split(A,2,axis=1) #矩阵纵向分割两块

np.array_aplit(A,3,axis=1) #不等分割

np.vsplit(A,3) #纵向分割

np.hsplit(A,3)

b = a.copy() #deep copy,b不关联a,只拷贝副本

Pandas

import pandas as pd

s = pd.Series([1,2,3,4])

pd.date_range('20160101',peroids=6)

df = pd.DataFrame(np.random.randn(6,4), index=dates, colunms=['a','b','c','d'])

df = pd.DataFrame(np.arange(12).reshape((3,4)))

df = pd.DataFrame({'A':1,'B':2,'C':3}) #内含字典

df.index #行

df.columns #列

df.values #值

df.describe()z #数字形式统计

df.sort_index(axis=1, ascending=False) #按列,倒序

df.sort_values(by='E') #按照某个值排序

print(df['A'],df.A)

df.loc['A']

df.iloc[3:5,2:4] #index索引

df.ix[2:4,'A:'B'] #索引混用,pandas0.20.0版本已经弃用,改为iloc功能

df[df.A>8]

pd['E'] = pd.Series([1,2,3], index=['A','B','C']) #pd新增一列值

df.dropna(axis=0,how='any') #how=['any','all],any有一个nan就丢弃整行,all需要全部nan才丢弃

df.fillna(value=0)

df.isnull()

np.any(df.isnull()==True) #any检查至少有一个为True,这里检查至少有一个是Nan

读取文件

pd.read_csv

pd.read_excel

保存

data.to_csv('test.csv')

data.to_excel

合并

res = pd.concat([df1,df2,df3], axis=0, ignore_index=True)

res = pd.concat([df1,df2,df3], join='inner') #inner保留交集,outer取并集,补充nan

res = df1.append([df2, df3], ignore_index=True)#根据index合并

res = df1.append(series1, ignore_index=True) #append series,根据index合并

pd.merge(left, right, on='key',indicator=True) #合并,key为行/列名,等值连接,indicator显示合并过程

boys = pd.DataFrame({'k':['k0','k1','k2'],'age':[1,2,3]})

girls = pd.DataFrame({'k':['k0','k1','k2'],'age':[4,5,6]})

res = pd.merge(boys,girls,on='key',suffixes=['_boys','_girls],how='outer') #合并并且区分男女,on设置主键值,suffixes设置新名,age+_boys

posted @ 2020-05-26 18:09  Rser_ljw  阅读(160)  评论(0编辑  收藏  举报