pandas数据结构:DataFrame

DataFrame是一个表格型的数据结构,包含行索引和列索引。下面通过传入一个由等长列表组成的字典来建立一个简单的DataFrame:

import pandas as pd
data={'name':['Shawn','Jason','Cindy','Danny','Jack','Rosen','Mike'],
      'English':[80,70,30,60,50,29,40],
      'Math':[90,40,60,100,30,23,45],
      'Chinese':[39,35,65,34,65,34,60],
      'Physics':[45,76,45,86,34,34,67],
      'Geography':[56,23,67,34,65,34,56]      
    }
frame=pd.DataFrame(data)

>>> frame

   Chinese  English  Geography  Math  Physics   name
0       39       80         56    90       45  Shawn
1       35       70         23    40       76  Jason
2       65       30         67    60       45  Cindy
3       34       60         34   100       86  Danny
4       65       50         65    30       34   Jack
5       34       29         34    23       34  Rosen
6       60       40         56    45       67   Mike

在jupyter中,上边的结果直接以表格的形式展现:

由于没有指定行的索引,DataFrame自动添加了行索引。可以通过以下方式定义行索引:


frame2=pd.DataFrame(data,index=['a','b','c','d','e','f','g'])
>>> frame2

   Chinese  English  Geography  Math  Physics   name
a       39       80         56    90       45  Shawn
b       35       70         23    40       76  Jason
c       65       30         67    60       45  Cindy
d       34       60         34   100       86  Danny
e       65       50         65    30       34   Jack
f       34       29         34    23       34  Rosen
g       60       40         56    45       67   Mike

对于大型数据,利用fame.head()可以获取前五行

>>> frame2.head()
   Chinese  English  Geography  Math  Physics   name
a       39       80         56    90       45  Shawn
b       35       70         23    40       76  Jason
c       65       30         67    60       45  Cindy
d       34       60         34   100       86  Danny
e       65       50         65    30       34   Jack

可以通过类似字典比较的方式或者属性的方式,将DataFrame的列获取为一个Series:

>>> frame2['name']
a    Shawn
b    Jason
c    Cindy
d    Danny
e     Jack
f    Rosen
g     Mike
Name: name, dtype: object

用loc和iloc进行选取

对于DataFrame的行的标签索引,可以通过使用轴标签(loc)或者整数索引(iloc),从DataFrame选择行和列的子集。

其中loc通过标签的真实值进行选择:

frame3=frame2.loc[['a','c'],['English','Chinese']]
>>> frame3
   English  Chinese
a       80       39
c       30       65

而iloc则是通过标签输出的位置进行选择:

frame3=frame2.iloc[[0,2],[1,0]]
>>> frame3
   English  Chinese
a       80       39
c       30       65

转为np.array格式

frame2=frame2.as_matrix()
>>> frame2
[[39 80 56 90 45 'Shawn']
 [35 70 23 40 76 'Jason']
 [65 30 67 60 45 'Cindy']
 [34 60 34 100 86 'Danny']
 [65 50 65 30 34 'Jack']
 [34 29 34 23 34 'Rosen']
 [60 40 56 45 67 'Mike']]

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值