pandas库使用

pandas复习

文件操作

对csv文件的读取

fr=read_csv(filename,header=None,names=None);

names就是每一列的名字,定义为None就会没有给他初始名字,那么每一行列的初始值就是从0开始的数字。

也可以初始化一个字符串列表,然后names=这个列表就可以有初始名字了

如果不打后面那两个东西的话,那么检索值就是csv文件中的东西

建立一个csv文件

dataSet.to_csv("xxx.csv",index=False)

index表示要不要在行前面加1,2,3…

查看

dataSet.head()    #返回前五行的东西
dataSet.head(x)  #返回前x行的东西
dataSet.tail() 和dataSet.tail(x)  #和上面类似
dataSet[x:y]   #返回第x行到用y-1行的东西
dataSet.shape[0]  #返回行数

dataSet[x]   #返回第x列的东西
dataSet[x][a:b]   #后面可以跟切片,如前返回x列的a到b-1行的东西
dataSet[x].str[:y]   #返回第x列每行的前y个字符
dataSet.shape[1]   #返回列数
dataSet[列名]
dataSet[[列名1,列名2]]

其他

iloc
dataSet.iloc[x]   #返回第x行的数据,相当于dataSet[x:x+1]
dataSet.iloc[x,:]   #和上面相同
dataSet.iloc['index']   #按照index索引选取数据
dataSet.iloc[x,y]   #选取(x,y)的数据,x,y只能是坐标
str(dataSet.iloc[x,i])=='nan'   #判断这一位是不是缺失值,不知道为什么不能直接等于nan
loc
dataSet.loc[(dataSet[inx]> Q3 + 1.5 * IQR),inx]=None

loc和iloc类似,只是维度可以用检索值表示

at和ix

和上面两个类似,不过at好像只能查询。

而ix,如果在python里面用了ix,pycharm会报错说:强烈建议不要用ix

以上都可以用切片操作
info
dataSet.info()    #返回行数列数和内存信息
describe
dataSet[0:4].describe()

.describe可以在上面“查看”的返回后加,可以统计count(总数),unique(类别),top(出现最多的类别),freq(出现最多的频率)

不过describe只会竖着统计

count
dataSet[x:y].count()   #返回每列x到y-1行非空个数
dataSet.count()   #返回每列非空个数
value_counts()
dataSetO['Survived'].value_counts('1.0')   #返回1.0出现的频率
dataSetO['Survived'].value_counts('1.0')   #返回1.0出现的次数

isnull()、notnull()

给每个位置判断是不是缺失值,如果是返回True

keys()

返回列的检索值

运算

dataSet.mean():返回所有列的均值
dataSet.corr():返回列与列之间的相关系数
dataSet.max():返回每一列的最大值
dataSet.min():返回每一列的最小值
dataSet.median():返回每一列的中位数
dataSet.std():返回每一列的标准差

操作

to_frame()

将series变为frame

shift

dataSet.shift(x)   #把数据的0到x-1行清空,但是行的检索值保留

行列的合并

data=dataSet.append(testSet)   #将testSet的行添加到dataSet的末尾
data=concat([dataSet,testSet],axis=1)   #将testSet的列添加到dataSet的末尾
dataSet.index=date_range('2019/10/29',periods=dataSet.shape[0])   #把行索引改为从日期2019-10-29开始向后推

丢弃

dataSet.drop("index"或序号,axis=01)   #删除,0是行,1是列
#如果是直接这样的话,因为index还在,会显示空行
dataSet.dropna(axis=01,how="any""all",inplace="True""False")#any是当有缺失值时,all是当全为缺失值时,inplace表示是在当前数据改,还是copy一份到新的数据

改名或index

dataSet.columns=['a','b','c','d']    #改列名
dataSet.reindex(range(dataSet.shape[0]))

排序

 data=dataSet.sort_values(1)   #按第一列排序,默认升序
 data=dataSet.sort_values(1,ascending=False)   #按第一列排序,false表示降序
 data=dataSet.sort_values([1,2],ascending=[True,False])    #以第一列升序未第一关键字,第二列降序未第二关键字排序

groupby

data=dataSet.groupby(1)   #返回以第一列为分组的groupby对象
data=dataSet.groupby([1,2])   #返回以第1,2列为分组的groupby对象

groupby对象能干什么

可以求和,求最大值等等

diff

DataFrame.diff(periods=1, axis=0) #periods:移动的幅度,axis方向,用处:做差
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值