数据分析pandas and matplotlib详细学习(1)———— Dataframe介绍(2022.7.13)

  到了pandas 了感觉学习的过程,特别想睡觉,不知道大家和我是不是有同样的感受,果然热天就特别想睡觉,不过话说回来,冬天仿佛也想睡觉。可能我就是天生睡觉的体质,不过想想还是放首歌来调节一下,就坚持坚持,今天一定要把pandas给拿下。毕竟在以后pandas,和matplotlib肯定用的特别多。不过想想数据分析可视化库还是挺多的,后面在拿出来整理整理。


一、库的导入

pandas 常用 pd作为简称

matplotlib 常用 plt作为简称

import panda as pd

import matplotlib as plt


二、Series 和 DataFrame

2.1 Series

        与numpy相比,pandas库更擅长处理二维数据,pandas库主要有Series和DataFrame两种数据结构。Series类似于通过Numpy库创建的一维数组,不同的是Series 对象不仅包含数组,还包含一组索引,其创建方式如下:

import pandas as pd
s1 = pd.Series(['小猪','喜欢','你'])
print(s1 )

out : 

0    小猪
1    喜欢
2     你
dtype: object

        不过Series单独使用的比较少,我个人感觉,碰到的少,我们学习他主要是为了它提供的DataFrame数据结构,它是一个二维表的数据结构,可以看成一个excel表。

2.2 二维表格DataFrame的创建

1、通过列表创建DataFrame 

import pandas as pd

a = pd.DataFrame([[1,2],[2,3],[3,4]])

print(a)

out:

   0  1
0  1  2
1  2  3
2  3  4

       可以看到,这是一个二维数组,如果把之前的numpy的数组拿出来对比,这个DataFrame创建的数组明显多了索引。需要注意的是他的索引序号是从0开始的。

当然对于DataFrame来说我们可以自定义行索引和列索引名。

实例如下:

a = pd.DataFrame([[1,2],[2,3],[3,4]],columns = ['data','score'],index = ['A','B','C'])

print(a)

out:

   data  score
A     1      2
B     2      3
C     3      4

通过列表创建DataFrame还可以采用以下方式

#创建一个空的Dataframe对象

a = pd.DataFrame()

a['data'] = [1,3,5]

a['score'] = [2,4,6]

print(a)

out:

   data  score
0     1      2
1     3      4
2     5      6

2、通过字典创建DataFrame

import pandas as pd

b = pd.DataFrame({'a':[1,3,5],'b':[2,4,6]},index = ['x','y','z'])

print(b)

   a  b
x  1  2
y  3  4
z  5  6

   我们知道在矩阵里面可以转置(列变行,行变列),其实在Dataframe里面也可以,其中有两个方法 一是用from_dict()函数将字典转换为DataFrame,并同时设置orient = index,其二了就是创建好DataFrame后再用 .T进行转置。这里用第二种写个实例,因为用的比较多。

import pandas as pd

b = pd.DataFrame({'a':[1,3,5],'b':[2,4,6]},index = ['x','y','z'])

print(b)

print(b.T)

out:

   a  b
x  1  2
y  3  4
z  5  6
   x  y  z
a  1  3  5
b  2  4  6

3、通过二维数组创建DataFrame

import numpy as np

import pandas as pd

d = pd.DataFrame(np.arange(12).reshape(3,4),index = [1,2,3],columns = ['a','b','c','d'])

print(d)

      out:

  

   a  b   c   d
1  0  1   2   3
2  4  5   6   7
3  8  9  10  11

4,修改行索引和列索引的名称。

        在进行数据预处理的时候,我们常常会遇见行和列名要修改的情况,在这里我们就经常用到rename()这个函数,用新索引名新建一个DataFrame赋给a来改变其内容,也可以设置inplace = True来实现真正的重命名。

实例如下:

import pandas as pd

a = pd.DataFrame([[1,2],[3,4]],columns = ['data','score'],index = ['a','b'])

print(a)

a = a.rename(index = {'a':'小z','b':'csdn'})
print(a)

out:

数据分析pandas and matplotlib详细学习(1)———— Dataframe介绍(2022.7.13)_第1张图片

当然如果想要直接更改列名,和行名的话,我感觉这样要方便一点。

import pandas as pd

a = pd.DataFrame([[1,2],[3,4]],columns = ['data','score'],index = ['a','b'])
print(a)
a.columns = ['第一','第二']
print(a)
a.index = [0,1]
print(a)

out:

   data  score
a     1      2
b     3      4
   第一  第二
a   1   2
b   3   4
   第一  第二
0   1   2
1   3   4

对于一个表来说,表的索引名我们得知道吧。

此时我们就可以用values来查看,不过我感觉用的不多,我用的不多而已,我直接把所有情况打印一遍,方便看一看区别。

import pandas as pd

a = pd.DataFrame([[1,2],[3,4]],columns = ['data','score'],index = ['a','b'])

print(a)

print(a.index)

print(a.index.values)

print(a.columns)

print(a.columns.values)

print(type(a.index.values))

out:

data  score
a     1      2
b     3      4
Index(['a', 'b'], dtype='object')
['a' 'b']
Index(['data', 'score'], dtype='object')
['data' 'score']

可以直接看到他们的不同,不过要注意的是values出来的是一个array格式的一维数组

如果想要把行索引改为某列内容的话可以使用set_index()函数。如果想把索引变为数字可以使用reset_index()我直接打印多个情况看看

实例如下:

import pandas as pd

a = pd.DataFrame([[1,2],[3,4]],columns = ['data','score'],index = ['a','b'])
print(a)
a = a.set_index('data')
print(a)
a = a.reset_index()
print(a)
 

out:

   data  score
a     1      2
b     3      4
      score
data       
1         2
3         4
   data  score
0     1      2
1     3      4

三 总结

        今天对DataFrame的表创建进行了整理,并且并且了解了rename 和set_index 和 reset_index()基本用法,过后再整理一下pandas 对excel 表格处理了操作,感觉这里面细节挺多的,容易弄错。后面在整理一下matplotlib的画图。

你可能感兴趣的:(小z同学的python学习之路,pandas,学习,python)