series和读取外部数据
阅读原文时间:2023年07月09日阅读:5

1、为什么学习pandas

我们并不是不愿意学习新的知识,只是在学习之前我们更想知道学习他们能够帮助我们解决什么问题。——伟哥

numpy虽然能够帮助我们处理数值,但是pandas除了处理数值之外(基于numpy),还能够帮助我们处理其他类型的数据(字符串、时间序列等等)

2、什么是pandas

pandas is an open source, BSD-licensed library providing high-performance, easy-to-use data structures and data analysis tools for the Python programming language.

译:pandas 是一个开源的、BSD 许可的库,为 Python 编程语言提供高性能、易于使用的数据结构和数据分析工具。

3、pandas的常用数据类型

  • Series 一维,带标签数组(索引)
  • DataFrame 二维,Series容器

4、pandas之Series创建

import pandas as pd
import numpy as np
import string

t = pd.Series(np.arange(10), index=list(string.ascii_uppercase[:10]))
print(t)

A 0

B 1

C 2

D 3

E 4

F 5

G 6

H 7

I 8

J 9

dtype: int32

测试一个小案例:

import pandas as pd

student = {"name": "xiaoming", "age": 18, "tel": 110}
t = pd.Series(student)
print(t)

name xiaoming

age 18

tel 110

dtype: object

再测试:

import pandas as pd
import string

a = {string.ascii_uppercase[i]: i for i in range(10)}
t = pd.Series(a, index=list(string.ascii_uppercase[5:15]))
print(t)

F 5.0

G 6.0

H 7.0

I 8.0

J 9.0

K NaN

L NaN

M NaN

N NaN

O NaN

dtype: float64

重新指定其他的索引之后,如果能对上,就取值,否则为NaN

注意:pandas会自动根据数据类型更改series的dtype类型

5、pandas之Series切片和索引

import pandas as pd
import numpy as np
import string

t = pd.Series(np.arange(10), index=list(string.ascii_uppercase[:10]))
print(t)

测试如下:

切片:直接传入start, end或者步长即可

索引:一个的时候直接传入序号或者 index,多个的时候传入序号或者 index的列表

6、pandas之Series的索引和值

对于一个陌生的series类型,我们如何知道他的索引和具体的值呢?

import pandas as pd
import numpy as np
import string

t = pd.Series(np.arange(10), index=list(string.ascii_uppercase[:10]))
print(t)

Series对象本质上由两个数组构成,一个数组构成对象的键(index,索引),一个数组构成对象的值( values),键→值

7、pandas之读取外部数据

现在假设我们有一个组关于狗的名字的统计数据,那么为了观察这组数据的情况,我们应该怎么做呢?

数据来源:https://www.kaggle.com/new-york-city/nyc-dog-names/data

import pandas as pd

# 直接使用pandas读取csv文件
test = pd.read_csv("./dog.csv")
print(test)

但是,还有一个问题:

对于数据库比如mysql或者mongodb中数据我们如何使用呢?

pd.read_sql(sql_sentence,connection)