pandas之数据结构介绍

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

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

2.1 创建Series

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

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的 valuesindex属性获取其数组表示形式和索引对象。

查看索引

obj.index

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

查看值

obj.values

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

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

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

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

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

输出

a    20
b    30
d    50
dtype: int64

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

3.1 创建DataFrame

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


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)

由于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

和创建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

Original: https://blog.csdn.net/TSzero/article/details/115302612
Author: 诡秘愚者
Title: pandas之数据结构介绍

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/677799/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球