Pandas库

2023-12-15 23:49:14

目录

介绍:?

一、生成DataFrame

二、访问DateFrame

?三、读取文件

?四、读写csv文件

介绍:?

Pandas是一个开源的Python数据分析库,提供了丰富的数据结构和数据分析工具,使得数据处理任务变得更加简单和高效。Pandas主要包括两个核心数据结构:Series和DataFrame。

Series是一维的数据结构,类似于一维数组,可以存储任意类型的数据。Series的特点是具有索引,可以根据索引来访问和操作数据。

DataFrame是二维的表格结构,类似于关系型数据库中的表格,可以存储多种类型的数据。DataFrame由多个Series组成,每个Series代表一列数据,可以通过列的索引来访问和操作数据。

Pandas提供了丰富的数据处理和分析工具,包括数据读取、数据过滤、数据清洗、数据计算、数据统计、数据可视化等功能。Pandas还可以与其他数据分析库(如NumPy、Matplotlib等)集成使用,可以方便地进行数据分析和可视化。

一、生成DataFrame

pd.DataFrame(np.arange(0,20).reshape(5,4))#生成表结构
'''结果:
 	0 	1 	2 	3
0 	0 	1 	2 	3
1 	4 	5 	6 	7
2 	8 	9 	10 	11
3 	12 	13 	14 	15
4 	16 	17 	18 	19'''

pd.DataFrame(np.arange(0,20).reshape(5,4),index['Row1','Row2','Row3','Row4','Row5'],columns=['Column1','Column2','Column3','Column4'])#加行表头,列表头
'''结果: 
 	 	Column1 	Column2 	Column3 	Column4
Row1 	0 	        1 	        2 	        3
Row2 	4 	        5 	        6 	        7
Row3 	8 	        9 	        10 	        11
Row4 	12 	        13 	        14 	        15
Row5 	16 	        17 	        18 	        19'''

df=pd.DataFrame(np.arange(0,20).reshape(5,4),index['Row1','Row2','Row3','Row4','Row5'],columns=['Column1','Column2','Column3','Column4'])#加行表头,列表头
print(df)
'''结果: 
 	 	Column1 	Column2 	Column3 	Column4
Row1 	0 	        1 	        2 	        3
Row2 	4 	        5 	        6 	        7
Row3 	8 	        9 	        10 	        11
Row4 	12 	        13 	        14 	        15
Row5 	16 	        17 	        18 	        19'''

二、访问DateFrame

df=pd.DataFrame(np.arange(0,20).reshape(5,4),index['Row1','Row2','Row3','Row4','Row5'],columns=['Column1','Column2','Column3','Column4'])#加行表头,列表头
'''结果: 
 	 	Column1 	Column2 	Column3 	Column4
Row1 	0 	        1 	        2 	        3
Row2 	4 	        5 	        6 	        7
Row3 	8 	        9 	        10 	        11
Row4 	12 	        13 	        14 	        15
Row5 	16 	        17 	        18 	        19'''


df.head()#只显示前五行
'''结果: 
 	 	Column1 	Column2 	Column3 	Column4
Row1 	0 	        1 	        2 	        3
Row2 	4 	        5 	        6 	        7
Row3 	8 	        9 	        10 	        11
Row4 	12 	        13 	        14 	        15
Row5 	16 	        17 	        18 	        19
'''

df.loc['Row5']#访问第五行
'''结果:
Column1    16
Column2    17
Column3    18
Column4    19
Name: Row5, dtype: int32
'''

df.loc["Row5",'Column2']#访问第五行,第二列
#结果:17

type(df.loc['Row5'])#第五行类型
#结果:pandas.core.series.Series

df.loc[:,:]#访问整个表格
'''结果: 
 	 	Column1 	Column2 	Column3 	Column4
Row1 	0 	        1 	        2 	        3
Row2 	4 	        5 	        6 	        7
Row3 	8 	        9 	        10 	        11
Row4 	12 	        13 	        14 	        15
Row5 	16 	        17 	        18 	        19
'''

df.iloc[:,1:]#所有行,第一列到所有列
'''结果:
 	Column2 	Column3 	Column4
Row1 	1 	        2 	        3
Row2 	5 	        6 	        7
Row3 	9 	        10 	        11
Row4 	13 	        14 	        15
Row5 	17 	        18 	        19
'''

df.iloc[:,1:].values#所有行,第一列到所有列的值
'''结果:
array([[ 1,  2,  3],
       [ 5,  6,  7],
       [ 9, 10, 11],
       [13, 14, 15],
       [17, 18, 19]])
'''

df['Column1'].value_counts()#第一列元素出现的次数
'''结果:
0     1
4     1
8     1
12    1
16    1
Name: Column1, dtype: int64
'''

?三、读取文件

df=pd.read_csv('data1.csv')#读文件
'''结果:
    d x c s a
0 	1 2 3 4 5
1 	4 5 6 5 6
2 	1 2 3 4 5
3 	7 8 9 9 6
4 	1 2 4 5 6
5 	9 4 3 3 2
6 	7 7 8 5 6
7 	4 5 6 5 4
'''

df.head()#显示前五行
'''结果:
    d x c s a
0 	1 2 3 4 5
1 	4 5 6 5 6
2 	1 2 3 4 5
3 	7 8 9 9 6
4 	1 2 4 5 6
'''

df.tail()#显示末尾五行
'''结果:
    d x c s a
3 	7 8 9 9 6
4 	1 2 4 5 6
5 	9 4 3 3 2
6 	7 7 8 5 6
7 	4 5 6 5 4
'''

df.head(7)#显示7行
'''结果:
    d x c s a
0 	1 2 3 4 5
1 	4 5 6 5 6
2 	1 2 3 4 5
3 	7 8 9 9 6
4 	1 2 4 5 6
5 	9 4 3 3 2
6 	7 7 8 5 6
'''

df.info()
'''结果:
<class 'pandas.core.frame.DataFrame'>
RangeIndex: 8 entries, 0 to 7
Data columns (total 1 columns):
 #   Column      Non-Null Count  Dtype 
---  ------      --------------  ----- 
 0    d x c s a  8 non-null      object
dtypes: object(1)
memory usage: 192.0+ bytes
'''

df.describe()#描述表格信息
'''
        d x c s a
count 	8
unique 	7
top 	1 2 3 4 5
freq 	2
'''

?四、读写csv文件

from io import StringIO,BytesIO
data=('col1,col2,col3\n'
     'x,y,1\n'
     'a,b,2\n'
     'c,d,3\n')

print(data)
'''结果:
col1,col2,col3
x,y,1
a,b,2
c,d,3


'''

type(data)
#结果:str

pd.read_csv(StringIO(data))
'''结果:
   col1 	col2 	col3
0 	x 	     y 	     1
1 	a 	     b 	     2
2 	c 	     d 	     3
''' 

df=pd.read_csv(StringIO(data))
'''结果:
   col1 	col2 	col3
0 	x 	     y 	     1
1 	a 	     b 	     2
2 	c 	     d 	     3
''' 

df.to_csv('Test.csv')#写回文件

df=pd.read_csv(StringIO(data),dtype=object)#类型定义为object
'''结果:
   col1 	col2 	col3
0 	x 	     y 	     1
1 	a 	     b 	     2
2 	c 	     d 	     3
''' 

df['col1']#访问col1列
'''结果:
0    x
1    a
2    c
Name: col1, dtype: object
'''

df['col1'][1]访问col1列第1个
#结果:'a'

df.dtypes#df的类型
'''结果:
col1    object
col2    object
col3    object
dtype: object
'''

type(df['col1'][1])#col1列的第一个的类型
#结果:str


data=('a,b,c\n'
     '4,apple,bat,\n'
     '8,orange,cow,\n')
pd.read_csv(StringIO(data))#读成csv文件
'''结果:会出现无法对齐的情况,以下有两种方法可以对齐
     a 	     b    	c
4 	apple 	bat 	NaN
8 	orange 	cow 	NaN

'''

data=('a,b,c\n'
     '4,apple,bat\n'
     '8,orange,cow\n')#把bat,cow后面的逗号去掉

'''结果:
    a 	  b 	c
0 	4 	apple 	bat
1 	8 	orange 	cow
'''

pd.read_csv(StringIO(data),index_col=False)#第一行不认为索引
'''结果:
    a 	  b 	c
0 	4 	apple 	bat
1 	8 	orange 	cow
'''

pd.read_csv(StringIO(data),usecols=['b','c'],index_col=False)#枚举b列和c列
'''结果:
 	b 	    c
0 	apple 	bat
1 	orange 	cow
'''

data='a,b\n"hello,\\"Bob\\",nice to see you",5'
#结果:'a,b\n"hello,\\"Bob\\",nice to see you",5'


pd.read_csv(StringIO(data),escapechar='\\')#去除反斜杠
'''结果:
                             a 	    b
0 	hello,"Bob",nice to see you 	5
'''

pd.read_csv(StringIO(data),escapechar=',')#去除逗号
'''结果:
                             ab
0 	hello\Bob\"nice to see you"5
'''
'''

?

?

文章来源:https://blog.csdn.net/qq_74156152/article/details/135026278
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。