Pandas学习笔记(一)

Pandas学习笔记(一)

pandas是一个基于numpy的工具,是一个列表的形式,适用于解决数据分析任务。

创建列表

#首先创建一个列表
s = pd.Series([1,2,3,44,np.nan])
Out: 
0     1.0
1     2.0
2     3.0
3    44.0
4     NaN
dtype: float64#64位float
    #会自动排列

列表是最简单的一个数据框架

创建框架

我们可以创建一个更复杂的DataFrame

#首先创建两个X,Y的序列
x = np.arange(1,15)
y = np.random.randn(14)#生成14个随机数
#或者可以使用
#dates = pd.date_range('20200405',periods=14)
pd.DataFrame({"x":x,"y":y})#x为X序列,Y为Y序列创建DATAFRAME
     x         y
0    1  1.248442
1    2 -0.964041
2    3 -0.245497
3    4  2.022872
4    5  0.278299
5    6  1.719397
6    7  0.087060
7    8  0.724141
8    9 -0.722429
9   10  1.655774
10  11  0.603248
11  12  2.218936
12  13  0.388408
13  14 -0.756672
#如果没有特别规定index=xxx则第一列就会自动标号有多少个序列

框架所包含的函数

可以讲每一列每一行或者全部元素的名字打印出来

#打印列的名字
s.index
#打印行的名字
s.columns
#打印全部元素的名字
s.values

同时,不久可以打印出名字,还能描述它的各种属性

a = pd.DataFrame({"x":x,"y":y})

a.describe()
Out[14]: 
             x          y
count  14.0000  14.000000  
mean    7.5000   0.589853
std     4.1833   1.060099
min     1.0000  -0.964041
25%     4.2500  -0.162358
50%     7.5000   0.495828
75%    10.7500   1.553941
max    14.0000   2.218936

排序

a.sort_index(axis=0,ascending=False)#对框架的列进行排序,axis=1则对行排序,ascending = False则是让反方向排序
Out :
13  14 -0.756672
12  13  0.388408
11  12  2.218936
10  11  0.603248
9   10  1.655774
8    9 -0.722429
7    8  0.724141
6    7  0.087060
5    6  1.719397
4    5  0.278299
3    4  2.022872
2    3 -0.245497
1    2 -0.964041
0    1  1.248442
#既然能对第一个列行排序,那么也能给某一行或列单独排序

索引

可以通过DataFrame行的名字来进行索引一行

a[x]#或a.y
Out:
0      1
1      2
2      3
3      4
4      5
5      6
6      7
7      8
8      9
9     10
10    11
11    12
12    13
13    14

a[0:5]
Out:
       x         y
0  1  1.605102
1  2 -1.502054
2  3  1.239707
3  4 -1.064812
4  5  0.794700

select by label:loc

#我们还可以通过  DataFrame.loc[] 进行选择
c:
          a         b         c         d
0  0.944298  0.210065  0.704360  1.247841
1 -0.253041  0.459716  0.216052  0.092584
2  0.260377 -0.076459 -0.916342  0.785965
c.loc[0]
Out[20]: 
a    0.944298
b    0.210065
c    0.704360
d    1.247841
Name: 0, dtype: float64
#这样进行索引回将列的名字及其对应的数字打印出来

#如果需要单独将哪一列打印出来
c.loc[:,['a','b']]
          a         b
0  0.944298  0.210065
1 -0.253041  0.459716
2  0.260377 -0.076459

select by position:iloc

#与numpy一样,pandas同样可以使用position来进行索引
c.iloc[2,2]
Out:
-0.9163417084924371

Boolean indexing

#可以给予索引条件来进行筛选
c[c.index<1]
Out:
          a         b        c         d
0  0.944298  0.210065  0.70436  1.247841
#或者
c[c.b>0]
Out:
              a         b         c         d
0  0.944298  0.210065  0.704360  1.247841
1 -0.253041  0.459716  0.216052  0.092584
c.a[c.a>0]
#索引a列中大于0的数字
a.a[a.b>0] = -1
a
Out[11]: 
         a         b         c         d
0  0.11374 -0.432719  0.252386  0.959131
1 -1.00000  0.103311 -0.217757 -0.246855
2 -1.00000  0.785828 -0.174807  0.929142
#以b为及基准,修改a

新增一列或一行

a['f']=np.nan
         a         b         c         d   f
0  0.11374 -0.432719  0.252386  0.959131 NaN
1 -1.00000  0.103311 -0.217757 -0.246855 NaN
2 -1.00000  0.785828 -0.174807  0.929142 NaN
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值