series和读取外部数据

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)

测试如下:

image.png

image.png

切片:直接传入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)

image.png

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

7、pandas之读取外部数据

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

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

image.png

import pandas as pd

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

image.png

但是,还有一个问题:

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

pd.read_sql(sql_sentence,connection)

原文地址:https://www.cnblogs.com/wangzheming35/p/15466684.html