Python pandas基础——创建Series、DataFrame

一、简介

 Python中的pandas库是数据分析中经常用的一个库,打开\转换csv\xlsx\txt文件、数据清洗、查找数据、简单的作图等等。

 pandas中的所有操作是基于两种数据结构:DataFrame和Series,本文就先主要介绍这两种数据结构,后续再介绍基于它们的操作。

二、Series

2.1 创建Series

 Series是⼀种类似于⼀维数组的对象,它由⼀组数据(各种NumPy数据类型)以及⼀组与之相关的数据标签(即索引)组成。

2.1.1 用列表创建Series:

import pandas as pd
obj = pd.Series([4, 7, -5, 3])
obj

输出

0    4
1    7
2   -5
3    3
dtype: int64

 Series的字符串表现形式为:索引在左边,值在右边。由于我们没有为数据指定索引,于是会⾃动创建⼀个0到N-1(N为数据的⻓度)的整数型索引。

 我们可以通过Series的values和index属性获取其数组表示形式和索引对象。

查看索引

obj.index

输出RangeIndex(start=0, stop=4, step=1)

查看值

obj.values

输出array([ 4, 7, -5, 3])

2.1.2 带索引的Series

 在创建Series的时候,加上参数index并赋值我们想要设置的索引即可。

扫描二维码关注公众号,回复: 13042127 查看本文章
obj = pd.Series([4, 7, -5, 3], index=['d', 'b', 'a', 'c'])
obj

输出:此时的输出就带上了我们设置的索引:[‘d’, ‘b’, ‘a’, ‘c’],而不是默认的[0, 1, 2, 3]

d    4
b    7
a   -5
c    3
dtype: int64

2.1.3 通过字典创建Series

 如果数据被存放在字典里,那么我们可以直接将其创建为Series对象,索引就是字典的键。

data = {
    
    'a': 20, 'b': 30, 'd': 50}
obj = pd.Series(data)
obj

输出

a    20
b    30
d    50
dtype: int64

三、DataFrame

 DataFrame是pandas用的最多的数据结构,它和Series不同,Series只有一列,而DataFrame可以有多列。DataFrame的结构形式和sql比较像,每一列可以看作是一个字段,一个特征(机器学习),而每一行则是所有列的取值。

3.1 创建DataFrame

 创建DataFrame的方法有很多,本文只介绍常用的几种。

3.1.1 用数组创建DataFrame

#生成3行5列的数组
data = np.random.randn(3, 5)
df = pd.DataFrame(data)
df

输出


        0	        1	        2	         3	        4
0	0.614040	0.202512	-2.668371	0.645818	-1.167729
1	0.086797	2.109643	0.130015	-0.865688	0.034858
2	1.956728	1.868124	0.085561	-1.188619	0.323035

 DataFrame既有⾏索引也有列索引,它可以被看做由Series组成的字典(共⽤同⼀个索引),因此和Series一样,当我们没有设置索引时,DataFram的行索引和列索引都是0, 1, ……,N-1

 同样,我们可以通过DataFrame的values属性查看它的值,index属性查看它的行索引,columns属性查看它的列索引(列名):

查看值

df.values

输出

array([[ 0.61403982,  0.20251155, -2.66837106,  0.64581832, -1.16772939],
       [ 0.08679744,  2.10964251,  0.13001494, -0.86568831,  0.03485802],
       [ 1.9567277 ,  1.86812424,  0.08556118, -1.18861883,  0.32303491]])

查看行索引

df.index

输出RangeIndex(start=0, stop=3, step=1)

查看列索引(列名)

df.columns

输出RangeIndex(start=0, stop=5, step=1)

3.1.2 创建带索引的DataFrame

 由于DataFrame既有行索引index,又有列索引(列名)columns,因此创建时可根据需要创建其中一个或都创建。

data = np.random.randn(3, 5)
df = pd.DataFrame(data, index=['a', 'b', 'c'], columns=['aa', 'bb', 'cc', 'dd', 'ee'])
df

输出

        aa	        bb	        cc	        dd	        ee
a	-0.284388	-0.238337	0.115592	-0.722185	-0.798702
b	-1.875249	0.248238	-0.140116	0.775234	-0.873626
c	0.343352	1.166614	0.757785	0.304297	0.520813

3.1.3 利用字典创建

 和创建Series类似,也可以利用字典创建DataFrame,此时字典的键会变为列名。

data = {
    
    'name': ['apolo', 'adm', 'bolon', 'cathy'],
        'age': [18, 29, 32, 28],
        'sex': ['male', 'female', 'male', 'male']}
df = pd.DataFrame(data)
df

输出

    name	age	 sex
0	apolo	18	male
1	adm	    29  female
2	bolon	32	male
3	cathy	28	male

猜你喜欢

转载自blog.csdn.net/TSzero/article/details/115302612