Pandas-数据结构&基本操作

时间:2021-02-02 11:27:43   收藏:0   阅读:0

数据结构

Series

Series是一个类似于一维数组的数据结构,它能够保存任何类型的数据,比如整数、字符串、浮点数等,主要由一组数据和与之相关的索引两部分构成。

Series的创建与应用

指定内容,默认索引

a=pd.Series(np.arange(10))
print(a)

输出:

技术图片

 

 

 指定内容,指定索引

b=pd.Series([1.2,2.2,3.2,4.2],index=[1,2,3,4])
print(b)
# 1    1.2
# 2    2.2
# 3    3.2
# 4    4.2
# dtype: float64

字典创建数据

c=pd.Series({"red":10,"green":20,"blue":30})
print(c)
print(c.index)
print(c.values)
print(c[1])
# red      10
# green    20
# blue     30
# dtype: int64
# Index([‘red‘, ‘green‘, ‘blue‘], dtype=‘object‘)
# [10 20 30]
# 20

DataFrame

DataFrame是一个类似于二维数组或表格(如excel)的对象,既有行索引,又有列索引

DataFrame的创建与应用

a=pd.DataFrame(np.random.randn(2,3))
print(a)
#          0         1         2
# 0 -1.628378 -1.574723  0.414543
# 1 -1.753412  2.216918  0.120283
score=np.random.randint(40,100,(10,5))
print(score)
# [[96 68 72 66 44]
#  [70 56 76 51 65]
#  [86 41 94 77 92]
#  [94 99 80 91 67]
#  [90 88 46 65 73]
#  [79 52 70 50 77]
#  [46 71 47 97 78]
#  [53 57 84 59 88]
#  [44 79 78 78 92]
#  [62 65 86 90 78]]

增加行列索引

# # 构造行索引序列
subjects = ["语文", "数学", "英语", "政治", "体育"]
stu=["同学"+str(i) for i in range(score.shape[0])]
data=pd.DataFrame(score,columns=subjects,index=stu)
print(data)
#     语文  数学  英语  政治  体育
# 同学0  96  68  72  66  44
# 同学1  70  56  76  51  65
# 同学2  86  41  94  77  92
# 同学3  94  99  80  91  67
# 同学4  90  88  46  65  73
# 同学5  79  52  70  50  77
# 同学6  46  71  47  97  78
# 同学7  53  57  84  59  88
# 同学8  44  79  78  78  92
# 同学9  62  65  86  90  78

其他操作

#显示前5行数据
print(data.head(5))
#显示后5行数据
print(data.tail(5))
#显示行索引
print(data.index)
# #显示列索引
print(data.columns)
# #显示具体的value值
print(data.values)
# #显示数据的转置T
print(data.T)
# #重设索引,保留之前的索引为index
print(data.reset_index())
# #重设索引,删除之前的索引
print(data.reset_index(drop=True))
# #修改行索引值
stu=["同学_"+str(i) for i in range(score.shape[0])]
data.index=stu
print(data)
# #设置某列值为新的索引
df = pd.DataFrame({month: [1, 4, 7, 10],
                    year: [2012, 2014, 2013, 2014],
                    sale:[55, 40, 84, 31]})
print(df)
print(df.set_index("year"))
print(df.set_index(["year","month"]))

输出:

Index([同学0, 同学1, 同学2, 同学3, 同学4, 同学5, 同学6, 同学7, 同学8, 同学9], dtype=object)
Index([语文, 数学, 英语, 政治, 体育], dtype=object)
[[96 68 72 66 44]
 [70 56 76 51 65]
 [86 41 94 77 92]
 [94 99 80 91 67]
 [90 88 46 65 73]
 [79 52 70 50 77]
 [46 71 47 97 78]
 [53 57 84 59 88]
 [44 79 78 78 92]
 [62 65 86 90 78]]
    同学0  同学1  同学2  同学3  同学4  同学5  同学6  同学7  同学8  同学9
语文   96   70   86   94   90   79   46   53   44   62
数学   68   56   41   99   88   52   71   57   79   65
英语   72   76   94   80   46   70   47   84   78   86
政治   66   51   77   91   65   50   97   59   78   90
体育   44   65   92   67   73   77   78   88   92   78
  index  语文  数学  英语  政治  体育
0   同学0  96  68  72  66  44
1   同学1  70  56  76  51  65
2   同学2  86  41  94  77  92
3   同学3  94  99  80  91  67
4   同学4  90  88  46  65  73
5   同学5  79  52  70  50  77
6   同学6  46  71  47  97  78
7   同学7  53  57  84  59  88
8   同学8  44  79  78  78  92
9   同学9  62  65  86  90  78
   语文  数学  英语  政治  体育
0  96  68  72  66  44
1  70  56  76  51  65
2  86  41  94  77  92
3  94  99  80  91  67
4  90  88  46  65  73
5  79  52  70  50  77
6  46  71  47  97  78
7  53  57  84  59  88
8  44  79  78  78  92
9  62  65  86  90  78
      语文  数学  英语  政治  体育
同学_0  96  68  72  66  44
同学_1  70  56  76  51  65
同学_2  86  41  94  77  92
同学_3  94  99  80  91  67
同学_4  90  88  46  65  73
同学_5  79  52  70  50  77
同学_6  46  71  47  97  78
同学_7  53  57  84  59  88
同学_8  44  79  78  78  92
同学_9  62  65  86  90  78
   month  year  sale
0      1  2012    55
1      4  2014    40
2      7  2013    84
3     10  2014    31
      month  sale
year             
2012      1    55
2014      4    40
2013      7    84
2014     10    31
            sale
year month      
2012 1        55
2014 4        40
2013 7        84
2014 10       31

 

评论(0
© 2014 mamicode.com 版权所有 京ICP备13008772号-2  联系我们:gaon5@hotmail.com
迷上了代码!