python操作数据

 # 三、python操作数据

''''''

1、如何增加数据

2、如何删除数据

3、如何修改数据

4、如何查询数据

''''''

本文还以扑克牌为例,学习使用python对数据【增、删、改、查】

首先创建一个空白的DataFrame格式数据框

import numpy as np

import pandas as pd 

# 创建一个空白的数据框

df = pd.DataFrame()

1、增加数据(增加行、列)

###增加列

#增加两行一列(在空白数据框中增加一列 编号)

df ['编号'] = [1,2]

df

 

 # 指定位置增加一列 使用insert()函数

df.insert(1,'牌面',[A,2])

df

 

 

df.insert(1,'花色',['黑桃♠','红桃♥'])

df 

 

 ###增加行

增加行,首先创建一个新的数据框,其中包含一张扑克牌,

使用append()函数把新牌添加进去,也可以用concat()函数。

# 定义一张新牌 

p = pd.DataFrame{'花色':['红心'],'牌面':‘3’}

df2 = df.append(p,ignore_index = True,sort = False)

df2

 

 #默认按照行的方向拼接两个数据框

pd.concat([df,p],ignore_index = True,sort = False)

###如果按照列的方向拼接,在concat()的参数中添加axis=1,

也可以使用merge()和join()函数代替。

 

2、删除数据

#删除行

##删除索引为0和2的行

 df2.drop([0,2])

 

 

 #删除列

###如果删除列,指定axis =1

#删除[花色]列

df2.drop(['花色'],axis=1)

 

 ##删除 [编号]列,del语句会直接删除列,del会改变原来的数据

del df2['编号']

df2

 

 3、修改数据

#修改所有值、 修改某个值、修改列名、修改指定列名、修改指定索引

 

##修改所有值,replace()函数替换所有匹配数据

#将所有A修改为1

df3 = df2.replace('A',1)
df3

 

 

##修改某个值,loc定位后,直接赋值

df3.loc[0,'牌面'] = ‘J’

df3

 

 

###修改列名

df3.column = list('AB')

df3

 

 ###修改指定列名

df3.rename({'A':'花色'},axis=1)

 

 ###修改指定行索引

##若rename不指定axis参数,默认修改行索引

df3.rename({1:2,2:3})

 

 4、查询数据

先从excel文件中读取数据,在用head()函数查询

df.head()

 

可以使用正则表达式的re模块,结合match()函数实现模糊查询

import re 

df[df.牌面.str.match('[jk]',flags=re.IGNORECASE,na = false)]

df

 

 ##用query()函数尽心查询

###索引在1到5之间,且牌面不是A和30  

card = ['A',30]

df.query(

    '1<=index <=5 \

    and 牌面 not ini @card'

)

 

 #使用query查询,还可以在表达式中使用统计函数

#查询编号大于平均值,且牌面为A

df.query(

    'index >=index.mean()\

    and 牌面 ==A'

)

 

 

### python操作数据所用到的函数:

 

posted @ 2020-04-22 14:08  祥祥随笔  阅读(266)  评论(0)    收藏  举报