Python模块之Pandas

Python模块之Pandas

以下内容摘自莫烦Python;

如果说Numpy是以矩形形式存储数据的,则Pandas则是以字典形式存储数据的;

Pandas的两个主要数据结构:Series和DataFrame;

Series:索引在左边,值在右边,如果没有为数据指定索引,则会自动创建一个0~N-1(N为长度)的整数型索引

在这里插入图片描述
DataFrame:是一个表格型的数据结构,它包含有一组有序的列,每列可以是不同的值类型(比如数值、字符串等),既有行索引也有列索引

在这里插入图片描述
挑选 b 的元素:

在这里插入图片描述
如果没有给定索引值,也是默认从0~N-1排序;

下面是一种生成dataframe的方法:

在这里插入图片描述
查看数据中的类型:

print(df2.dtypes)

看对列的序号:

print(df2.index)    # 就是左边的索引

看行的索引名称:

print(df2.columns)

只看df2的值,不看索引:

print(df2.value)

数据总结:

df2.describe()

翻转数据:

print(df2.T)

对数据的index进行排序输出:

print(df2.sort_index(axis = 1, ascending = False))  # 对行索引排序

对数据的值进行排序输出:

print(df2.sort_values(by = 'B'))

选取某一个行索引对应的值:

print(df2['A'])    # 或print(df2.A)

多行或者多列索引:

print(df2[a:b])    # a,b分别是对应的行索引名称或者列索引名称或者是对应的序号,从0开始

使用标签loc进行索引:

print(df2.loc[2])   #返回第3行的索引值
print(df2.loc[:,['A','B']])    #返回A和B列的值,其行索引和列索引一并返回
print(df2.loc[2,['A']])    #返回第3行第A列的索引值,具体到某一个值,前面可能不止一个值

根据序列iloc索引:

print(df2.iloc[3,1])      #返回第四行第二列的数据,只能看到一个数据
print(df2.iloc[3:5,1:3])  #返回第4~5行,第2~3列的数据,其左边的索引和上边的索引都可以看到
print(df2.iloc[[1,3],1:3]) #返回第2行和第4行,第2~3列的数据,同样的左边的索引和上边的索引都可以看到

混合选择:

print(df2.ix[:3,['A']])   #返回前三行,第A列的数据

通过判断的筛选:

print(df2[df2.A>0.5])   #先通过df2.A>0.5找到满足条件的所有行索引x,然后返回这些行索引x的所有列数据

对dataframe中的数据具体设置某个值也是一样的,能够索引到,然后等号右边输入要设置的值即可;

给dataframe加入某一列Series序列(长度必须一致):

df2['G'] = pd.Series([1,2,3,4], index = pd.date_range(0, 4))  #前面[1,2,3,4]是要加入的第7列G列的数据,index是对应的行索引名称

去掉dataframe中有NaN的行或列:

df2.dropna(axis = 0, how = 'any')   #axis = 0是对行操作,1是对列操作;
# 'any'是只要存在NaN就删掉这一行或这一列,但行索引或者列索引名称不变;
# 如果是how = 'all',则要求这一行或者这一列全都是NaN才删除

采用其他数值替代NaN:

df2.fillna(value = 0)  #采用数值0替代NaN

检测数据是否存在NaN,如果存在返回True:

np.any(df2.isnull()) == True

文件读取:

pd.read_csv('xxx')   # xxx为文件名称

文件存储:

df2.to_pickle('xxx') # xxx为文件名称

合并concat:

在这里插入图片描述
如果要重置左边的index,则concat([df1,df2,df3], axis = 0, ignore_index = True)

join:

未设定任何参数时,函数默认join=‘outer’。此方式是依照column来做纵向合并,有相同的column上下合并在一起,其他独自的column个自成列,原本没有值的位置皆以NaN填充:

在这里插入图片描述
下面是join = ‘inner’:

在这里插入图片描述
依据某一个dataframe的索引进行合并:

在这里插入图片描述
append:只能纵向合并:

在这里插入图片描述
根据key进行合并:

在这里插入图片描述
合并的时候也可以根据how = 'inner’和how = 'outer’来合并,没有的则是NaN;

如果加上参数indicator = True或者’indicator_column’,则最后一列会有一个名为_merge或者’indicator_column’的列索引名称,其下面对应的值表示是根据哪个dataframe进行合并的;

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值