pandas笔记(未完成版)

pandas笔记(未完成版)

import pandas as pd
import numpy as np
import matplotlib.pyplot as plt #numpy跟matplotlib经常和pandas配合使用

创建数据

#Series:Series是一种类似于一维数组的对象,由下面两个部分组成:
#values:一组数据(np(array)类型)
#index:相关的数据索引标签
s=pd.Series([1,3,5,‘np’,‘nan’,6,8])
print(s)

dates=pd.date_range(‘20190321’,periods=5)#periods 创建总共六个索引
print(dates)

#DataFrame是一个【表格型】的数据结构。DataFrame由按一定顺序排列的多列数据组成。设计初衷是将Series的使用场景从一维拓展到多维。DataFrame既有行索引,也有列索引。
#行索引:index
#列索引:columns
#值:values

df=pd.DataFrame(np.random.randn(5,4),index=dates,columns=list(‘ABCD’))#dates属性当索引,ABCD四个当列
print(df)

print(df.dtypes)#查看不同列的数据类型
print(df.head(2))#查看头两行
print(df.tail(3))#查看尾部三行
print(df.index)#显示索引,同理下面是显示列和属性的
print(df.columns)
print(df.values)
print(df.describe())#describe函数对于数据的快速统计汇总
print(df.T)#输出其转置矩阵
print(df.sort_index(axis=1,ascending=True))#按轴排序 ascending设置是否允许降序
print(df.sort_values(by=‘B’))#按值排序,把B那一列的按顺序排列了,默认逆序

选择属性

dg=pd.DataFrame(np.random.rand(5,4),index=dates,columns=list(‘abcd’))
print(dg)
print(dg.loc[‘2019-03-22’:‘2019-03-24’,[‘a’,‘b’]])#切片 切行,切列 .loc
print(dg.loc[‘2019-03-23’:,‘a’])#切到具体点 可以去掉’:'只看那一点 不去掉的话把0323之后所有的都给切出来
print(dg.loc[:,[‘b’,‘c’]])
print(dg.at[dates[4],‘a’])#at主要是访问标量的
print(dg.loc[:‘2019-03-22’,‘a’])#把a的中括号去掉可以不显示a
print(dg.iloc[3])#选择行
print(dg.loc[dates[1],list(‘abcd’)])#方法等价于上面
print(dg.iloc[3:5,2:4])#iloc可以通过数值切片 总感觉像intloc
print(dg.iloc[1,1])#直接选择切具体位置,快速访问
print(dg.iat[2,2])#快速访问标量
dg2=dg.copy()
dg2[‘e’]=list(‘12345’)
print(dg2)
print(dg2[dg2[‘e’].isin([‘2’,‘4’])])#这里使用isin方法进行过滤,找出在第e列有没有2,4两个属性,如果有则输出。如果去掉最外层dg2[]则会输出所有行,true或者false

reindex:修改索引

xl=pd.DataFrame(index=list(‘8910’),columns=list(‘1234’))
xl_1=xl.reindex(index=[5,6,7,8,9,1,0])
print(xl_1)

#缺失值处理 pandas里面缺失值都是用nan表示的,
#去掉包含缺失值的行: df.dropna(how=‘any’) 通常情况下删除行用axis=0 删除列的话aixs=1
how=any是删除所有的不管是列还是行只要是出现nan的位置

#df.fillna(value=?)缺失值替换可以是value=5 或者直接给他个字符串

#判断是否为nan用pd.isnull(你的创建的数据)

猜你喜欢

转载自blog.csdn.net/qq_43299265/article/details/89675256