个人总结-pandas

基于 https://www.bilibili.com/video/BV1hx411d7jb?t=36&p=23

0. Series和DataFrame

pandas中的两种基本数据板块
Series是一个维度为1,类似于字典
DataFrame:维度为2,series的容器,或者说组成成分是series

1.Series

·创建一个Series
可以由字典转过来,也可以由直接创造
Series([data, index, dtype, name, copy, …])
Series()

index后面附的是标签,如果没有填写而默认的话,出来的是0,1,2,3…

import numpy as np
import pandas as pd
import string

a=pd.Series(np.arange(5), index=list(string.ascii_uppercase[:5]))
print("a:",a,'\n')

b={'A':10,'B':20,'C':30,'D':40,'E':50}
b=pd.Series(b)
print("b:",b,'\n')

在这里插入图片描述

·索引与切片
这一块它像是列表和字典的糅合物,也有上篇中的[[ ]]式来对不连续的行列进行搜查,当然也可以通过判断来搜索

a=pd.Series(np.arange(5), index=list(string.ascii_uppercase[:5]))
print("a:\n",a,'\n')

b=a[0:3]
print("b:\n",b,'\n')
  
#改版了,不能搜不存在的东西
c=a[['A','B','D']]
print("c:\n",c,'\n')

#判断搜索
d=a[a>1]
print("d:\n",d,'\n')

e=a[[1,2,4]]
print("e:\n",e,'\n')

在这里插入图片描述

它甚至还有 .value() 和 .keys() 这种字典的方法

a=pd.Series(np.arange(5), index=list(string.ascii_uppercase[:5]))
print("a:\n",a,'\n')

print(a.values)
print(a.keys)

在这里插入图片描述

2.DataFrame

·概貌
这就是一个矩阵,如果单列着来看的话就是一个Series,多行来看的话是有相同标签的Series的横向叠加
二维列表可以
也可以通过二维的字典来构造

a=pd.DataFrame(np.arange(15).reshape(5,3), index=list('abcde'),columns=list('XYZ'))
print("a:\n",a,'\n')

print("a:\n",a,'\n')


A=[
      {'A':0,'B':3,'C':6,'D':9,'E':12},
    {'A':1,'B':4,'C':7,'D':10,'E':13},
    {'A':2,'B':5,'C':8,'D':11,'E':14}
       ]
A=pd.DataFrame(A)
print(A)

在这里插入图片描述

也可以通过二维的字典来构造

·基本属性和方法
下面是默认df为DataFrame的对象
注意属性是直接调出来的,没括号
在这里插入图片描述

a=pd.DataFrame(np.arange(15).reshape(5,3), index=list(string.ascii_uppercase[:5]))
print("a:\n",a,'\n')


print("a.shape:",a.shape)
print("a.dtypes:",a.dtypes)
print("a.ndim:",a.ndim)
print("a.index:",a.index)
print("a.columns:",a.columns)
print("a.values:",a.values)

print("-"*50)
print(a.describe())
print(a.info())
print(a.head(2))
print(a.tail(2))

在这里插入图片描述

在这里插入图片描述

·索引与排序
在这里插入图片描述
位置就是坐标
但是韩式保留了[ [行],[列]] 这般的指定,里面填标签或坐标

·排序:df.sort_values(by="要排序的行或列’’,ascending=True(小到大)/False(大到小),…)

a=pd.DataFrame(np.arange(15).reshape(5,3), index=list('abcde'),columns=list('XYZ'))
print("a:\n",a,'\n')

b=a.sort_values(by='Y',ascending=False)
print('''a.sort_values(by='Y',ascending=False):''','\n',b,'\n')

在这里插入图片描述

·索引:多行多列,不连续行\列,特定位置(一次直奔不过一个)
下面以loc为例子,其实iloc也差不多,就是标签改数字罢了

a=pd.DataFrame(np.arange(15).reshape(5,3), index=list('abcde'),columns=list('XYZ'))
print("a:\n",a,'\n')

print('a.X:','\n',a.loc[:]['X'],'\n')
print('a.b:','\n',a.loc['b'],'\n')
print('''a.loc['b',['X','Y']]:''','\n',a.loc['b',['X','Y']],'\n')
#a.loc['b'],['X','Y']这样也是可以的
#但祝生意是两重方括号,失去外面一重的后果是选完所有列
print('''a.loc[['b'],['X','Y']]''','\n',a.loc[['b'],['X','Y']],'\n')
#如果是[],[]这种的话,与numpy那边也不大同,这是指定一个范围
#比如 [3,5],[1,4],返回地四行的第二个和第五个,第五行第二个和第五个
print('''a.loc[['b','d'],['X','Y','Z']]:''','\n',)
print(a.loc[['b','d'],['X','Y','Z']],'\n')

#指定位置,只能一个个来
print('''a.loc['a','Z']:''','\n',a.loc['a','Z'])

在这里插入图片描述
在这里插入图片描述

·条件搜索

和numpy的相似
df[判断条件(含df)]

a=pd.DataFrame(np.arange(15).reshape(5,3), index=list('abcde'),columns=list('XYZ'))
print("a:\n",a,'\n')
print(a[a>10])

在这里插入图片描述

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值