numpy基础

numpy:

方法:

np.array() 将list转换为ndarray

np.asarray()将list转换为ndarray

np.ones()生成指定形状(shape参数)的全1数组 默认float64 (dtype参数可以指定)

np.zero()生成指定形状的全0数组 默认float64

np.empty()生成指定形状的空数组

np.identity()生成指定维数的单位阵

np.reshape()矩阵变形

np.transpose([0,1,2,…])矩阵转置

axis轴参数0纵1横

np.concatenate()级联

np.split(name_of_Matrix,indices_or_sections = [position_of_cutting,–,—],axis=)

np.hsplit() 纵

np.vsplit()横

np.copy()创建副本

属性:

np.ndim查看数组维度

np.shape查看数组形状

np.dtype查看元素类型(默认相同)不同自动转

pandas:(pd):

方法:

一、数据读取:

.cdv file : pd.read_csv(.csvfile_Path)

.txt file : pd.read_csv(.txt_Path,sep(分隔符) = ’ ‘,header(标题行) = ‘’/None,names(属性名/列名) = [’‘,’‘,’'])

.xlsx(excel) : pd.read_excel(.xlsxfile_Path)

二、数据结构:

Series : values+index 类一维数组

创建Series:

pd.Series([content],index = [index - index.num = content.num])

pd.Series({‘key(index)’:value,,,~})

S1[‘index’,~] == value,~

Series 的索引与切片:

(1):显示索引: -index;-.loc[[index区间]] 闭区间

(2):隐式索引: -整数; -iloc 左闭右开

Dataframe: 表格型 , 可以看作Series组成的字典 ,类二维数组

行索引 index 列索引 columns 值 value

  • Dataframe 的创建:

Dataframe(Matrix,Index,Columns)

Dataframe(np.random.randint(0,150,(3,5)),index = list(‘abc’),columns = [‘py’,‘java’,‘C’,‘C++’,‘C#’])

Dataframe({coliumn:[value],~},index)

D1[‘columns’].astype()更改列的数据类型change data type of the column

三、pd数据查询

1、数值2、列表3、区间4、条件5、函数

方法:

更换index为其中一列:

object.set_index(‘indexname’,inplace = true)

更改某一列的数据以及类型:

object.loc[:,column_name] = object[‘column_name’].str.replace(‘改之前’,‘改之后’).astype(‘更改的数据类型’)

查询特定开头的index:

object.index.str.startswith(~)

去重:

object[‘column’].unique() return list

查询:

单个值:

object.loc[index,column] Return a value

|

object.loc[index,[columns]] Return a Series

object.loc[[indexes],column] Return a Series

|

object.loc[[indexes],[columns]] Return a Dataframe

区间查询:(闭区间)

object.loc[[index_str : index_end],[column_str : column_end]]

条件查询:object.loc[object[colunm] ? condition, : ]

函数查询:

匿名函数:object.loc[lambda object : (object[column] < condition ), : ]

自定义函数:

def query_my_data(object):return  object.index.str.startwith('~')&~

object.loc[qurey_my_data. : ]
四、pd新增数据列:

1、直接赋值

object.loc[ : . ‘new_column_name’ ] = ?

2、apply

apply(function,axis)

#定义一个函数,获取对应温度的类型
def get_wendu_type(x):
    if x['bWendu'] > 33:
        return '高温'
    elif x['yWendu'] < -10:
        return '低温'
    return '常温'

df.loc[:,'wendu_type']=df.apply(get_wendu_type,axis=1)

3、assign

类似apply 但可以:一次新增多个列 不用指定方向axis

4、分条件赋值

weather['wencha_type'] = ''
weather.loc[weather['bWendu']-weather['yWendu'] > 10,'wencha_type'] = '温差大'
weather.loc[weather['bWendu']-weather['yWendu'] <= 10,'wencha_type'] = '温差正常'

~ = ‘’ ~ ~

五、丢失数据的处理

方法:

isnull(): nan return Ture

notnull(): nan return False

注 : .any() 一个True 都为True .all()都为True才为True

两个函数均可以在参数中制定axis 来获得行/列的情况

drop(name,axis): 删除 默认行(axis为0)3x3 - 2x3

行/列移除,不是为空

dropna(): 删除有nan的 axis

fillna(): 填充 return a full Dataframe

填充平均值: object.fillna(object.mean())

填充指定值:object.fillna(value)

method 参数: 指定填充方式 (bfill以右列/下行填充 ffill 以左列/上行填充 )

六、分组和合并:

group_by_column’s name = object.groupby('column’s name ')

例:group_by_column’s name.sum():得到Name为index的各个整数列和

原Dataframe

0 laowang 2016 10000 3000 1
1 laosong 2016 2000 1000 2
2 laosong 2016 4000 1000 3
3 rongmei 2016 5000 1200 4
4 laowang 2017 18000 4000 5
5 laowang 2017 25000 2300 6
6 laosong 2017 3000 500 7
7 laowang 2017 4000 1000 8

print(Group_by_name.sum())

​ Year Salary Bonus
Name
laosong 6049 9000 2500
laowang 8067 57000 10300
rongmei 2016 5000 1200

group_by_column’s name.aggregate(‘sum’,np.mean,np.std标准差) = .agg

七、表格匹配与拼接
  • 级联:concat() append()
  • 合并:merge() join()
concat:

column_same index_different : concat

step1 = define a list[df1,df2,~~~ ]

step2 = concat(list , sort = False)

keys 参数:给列表中的Dataframe标记

append():

merge():

可以添加条件

like join in SQL

df1.merge(df4, on='city')

apts cars city
0 55000 200000 Shanghai
1 60000 300000 Beijing
2 58000 250000 Shenzhen
salaries city
0 10000 Suzhou
1 30000 Beijing
2 30000 Shanghai
3 20000 Guangzhou
4 15000 Tianjin
apts cars city salaries
0 55000 200000 Shanghai 30000
1 60000 300000 Beijing 30000

df1.merge(df4, on='city' how = '')

how = outer/left/right 连接方式

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值