Python与数据分析学习笔记(2)Pandas基本功能介绍

目录

Series
DataFrame
Series过滤NaN值
DataFrame过滤NaN值
DataFrame选取元素

Series

import pandas as pd
ser = pd.Series([1,2,3,4,5],index=['a','b','e','d','c'])
print(ser)

a    1
b    2
e    3
d    4
c    5
dtype: int64

print(ser.sort_index())      #按索引排序

a    1
b    2
c    5
d    4
e    3
dtype: int64

print(ser.sort_index(ascending=False) #根据索引排倒序

e    3
d    4
c    5
b    2
a    1
dtype: int64

print(ser.sort_values())    #根据元素进行排序

a    1
b    2
e    3
d    4
c    5
dtype: int64

DataFrame

DataFrame和Series不同,形象比喻一下,Series中的数据像是一条线,只有长度,没有宽度,而DataFrame中的数据分布是个二维图形,有宽度有长度,因此DataFrame中的数据排序虽和Series有相似之处,但两者并不能并题而论。

frame = pd.DataFrame(np.arange(16).reshape(4,4)),index=['red','green','yellow','red'],columns = ['ball','pen','pencil','pencil'])

print(frame.sort_index())  #按索引排序

        ball  pen  pencil  pencil
green      4    5       6       7
red        0    1       2       3
red       12   13      14      15
yellow     8    9      10      11

print(frame.sort_index(by='pen')  #通过by选定指定元素进行排序

        ball  pen  pencil  pencil
red        0    1       2       3
green      4    5       6       7
yellow     8    9      10      11
red       12   13      14      15

print(frame.)

Series过滤NaN值

ser = pd.Series([0,1,2,np.NaN],index=['red','yellow','blue','green'])
print(ser.dropna())

red       0.0
yellow    1.0
blue      2.0
dtype: float64

print(ser[ser.notnull])

red       0.0
yellow    1.0
blue      2.0
dtype: float64

DataFrame过滤NaN值

DataFrame过滤NaN值要尽量避免使用dropna()方法,因为使用dropna()时,只要行或列有一个NaN元素,该行或列的元素就会全被删除,因此,为避免这种事情发生,要使用how选项。

frame = pd.DataFrame([[6,np.NaN,6],[np.NaN,np.NaN,np.NaN]],index=['blue','green','red'],columns=['ball','mug','pen']
print(frame.dropna(bow='all'))

       ball  mug  pen
blue     6    NaN   6
red      2    NaN    5

DataFrame选取元素

frame = pd.DataFrame(np.arange(16).reshape(4,4),index=list('abcd'),
columns=list('uxyz'))
h=frame.loc['a','y']		#定点查询
print(h)

2

m = frame.iloc[2,2]			#坐标查询  即第(n+1,n+1)个数
print(m)

10

n=frame.iloc[0]			#查询第一行

u    0
x    1
y    2
z    3
Name: a, dtype: int32

x=frame.iloc[:,0]			#查询第一列
print(x)

a     0
b     4
c     8
d    12
Name: u, dtype: int32

同样,也可用loc定位到行名、列名,但iloc必须内用数字,在此不再赘述。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值