这个专栏是实用数据集处理以及图像绘制,全是实际项目中用到的干货。最近做了一个需要大量数据处理的项目,正好吧所有用到的numpy 和 pandas方法进行汇总。用到新方法会及时更新汇总。
(1)np.tile() 复制
np.tile(a,(2,3))
#沿y轴复制2倍,x轴复制3倍
np.transpose(维度,维度,维度)
常用于处理图像的不同维度
图像理解
(3)np.linspace() 构造等差数列,np.logspace(1, 5, 10) 同上,构造等比数列
np.linspace(start, stop, num=50, endpoint=True, retstep=False, dtype=None, axis=0)
'''
start:返回样本数据开始点
stop:返回样本数据结束点
num:生成的样本数据量,默认为50
endpoint:True则包含stop;False则不包含stop
retstep:If True, return (samples, step), where step is the spacing between samples.(即如果为True则结果会给出数据间隔)
dtype:输出数组类型
'''
(4)np.random.seed() 随机数种子,使得每次生成的随机数相同
np.random.seed(1)
a = np.random.randn(2,4)
print(a)
df = pd.read_csv('路径')
(2)字典创建表格
data={"color":['red','yellow','blue'],"value":np.arange(3)}
x=pd.DataFrame(data,index = [0,1,2])
# index默认就是012
df['key'] = ['x','y','z']
#后面接list
(4)读取行
df1 = df[['color','value']]
df1
df.drop(labels=None, axis=0)
# labels:要drop的Index或column的名字,可以是单个的,也可以是list
# axis:0是行,1是列
(6)更改列名称
df.rename(columns={'lat_col': 'cluster_lat', 'lon_col': 'cluster_lon'}, inplace=True)
# inplace:bool,default False 将结果返回赋值给原变量
# columns 对列标签进行修改(默认是行)
(7)改变索引
#设置新索引(不在原表)
df.index=['x','y','z']
#将原表汇总数据作为索引
df = df.set_index('color',inplace=True,drop = False)
#drop 默认true,删除索引在原来表中位置
df.reset_index(drop=True)
#将索引还原成0123,drop删除原索引
(8)df.loc,df.iloc 用于没有行列索引的行列提取
df1.loc[行号]
#找出index对应行的数据,提取某些行,行筛选
df1.loc[df1['color'] == 'red']["value"] #只显示color = red行的 vakue列
df.iloc[行号,列号]
df.corr()
corrmat = df.corr()
plt.subplots(figsize=(12,9))
sns.heatmap(corrmat, vmax=0.9, square=True)
plt.show()
#计算表中所有列的相关性,并绘制热力图
(10)返回列的array
df1 = df['列名'].values
(11)列表shape
df.shape
(12)统计缺失值
count=df.isnull().sum().sort_values(ascending=False)
(13)两个表的拼接 pd.merge() merge默认是内连接,concat默认是外连接
pd.merge()
pd.merge(left, right, how='inner', on=None, left_on=None,
right_on=None, left_index=False,sort = False, right_index=False, suffixes=(_left,_right), indicator=False,)
#left,right :两个表
# on :主键,按照哪一列的值进行合并,只要该列对得上就可以
# left_index=False, right_index=False 按照索引拼接
# how 参数控制拼接方式,默认内连接(inner)即只把相同的进行拼接
# how = "outer" 外连接,把所有信息均保留,空白的填补NAN
# how = "left" 保留左表信息,右表与左表一致的进行拼接,没有的填补NAN(right)同理
# indicator 显示来自哪个表格
# suffixes 若左右有相同列名且不是主键的话显示后缀
# sort:按字典顺序通过连接键对结果数据框进行排序。
不指定on的话只有完全一致才可以合并
(14)pd.concat() merge默认是内连接,concat默认是外连接
pd.concat( [df1,df2], axis=0, join=‘outer’,ignore_index = True)
'''
objs: 表示需要连接的对象,比如:[df1, df2],需要将合并的数据用中括号包围;
axis=0 表拼接方式是上下堆叠,当axis=1表示左右拼接;
join :外连接还是内连接,join='outer’表示外连接,保留两个表中的所有信息;join="inner"表示内连接,拼接结果只保留两个表共有的信息;
ignore_index:ignore_index 忽略需要连接的frame本身的index
'''
(15)df.iterrows(),df.iteritems() 逐行逐列操作, 返回index和值
for row_index, row in df2.iterrows():
print(row_index,row)
for col_index, col in df2.iteritems():
print(col_index,col)