10分钟入门Pandas(一)

自 pandas文档(https://pandas.pydata.org/docs/user_guide/10min.html)

这里只是一个简单的介绍,面向初学的小伙伴,如果想要学习更多的pandas知识点,请看文档当中的cookiebook部分,当然,后续也会进行翻译。

官方文档当中使用了numpy结合pandas使用,我们在举例子的过程当中,保留文档案例的同时采用一个新的案例,商品关系数据结构:

商品表:

id 商品名称 商品价格 商品产地 商品上架时间 商品类型
1 山东红富士 12.5 山东烟台 1991/3/24 水果

商品类型表:

类型id 类型名称
1 水果
2 肉类
3 禽蛋奶

创建数据对象:

当然,为了更好的学习这一部分的内容,可以先参照一下数据结构部分,

首先可以通过一个列表类型的值创建一个序列,pandas会默认创建一个整数类型的索引:

import pandas

#通过一个列表类型的值创建一个序列
series = pandas.Series(["a","b","c","d"])

print(series)
#效果如下
"""
0    a
1    b
2    c
3    d
dtype: object
"""

当然这里除了使用列表之外,python其他的数据结构也是可以的,只不过字符串和字典还是有一些区别的。

字符串类型

import pandas

#通过一个字符串类型的值创建一个序列
series = pandas.Series("abcdef")

print(series)
#效果如下
"""
0    abcdef
dtype: object
"""

元组类型

import pandas

#通过一个元组类型的值创建一个序列
series = pandas.Series(("a","b","c","d"))
# series = pandas.Series({"a": 1,"b": 2,"c": 3,"d": 4})

print(series)
#效果如下
"""
0    a
1    b
2    c
3    d
dtype: object
"""

字典类型

import pandas

#通过一个字典类型的值创建一个序列
# series = pandas.Series({"a": 1,"b": 2,"c": 3,"d": 4})

print(series)
#效果如下
"""
a    1
b    2
c    3
d    4
dtype: int64
"""

通过pandas的方法生成索引

import pandas
index_data = pandas.date_range("20160201",periods = 3)

order_data = pandas.DataFrame(range(3),index=index_data)
print(order_data)
#效果如下
"""
            0
2016-02-01  0
2016-02-02  1
2016-02-03  2
"""

使用DataFrame方法传入字典嵌套的格式可以定义一个二维的结构表,其中字典的建会作为列的名称

import pandas
dicts = {
    "a": ["a","b","c","d","e"],
    "1": [1,2,3,4,5]
}
data = pandas.DataFrame(dicts)
print(data)
#效果如下
"""
            0
2016-02-01  0
2016-02-02  1
2016-02-03  2
"""
#当然如果数据的长度不一致也会出现问题
import pandas
dicts = {
    "a": ["a","b","c","d","e"], #5个
    "1": [1,2,3,4,5,6] #6个
}
data = pandas.DataFrame(dicts)
print(data)
#效果如下
"""
.......
raise ValueError("arrays must all be same length")
ValueError: arrays must all be same length
"""

#当然在这里可以有更加复杂的案例
import numpy
import pandas
data = pandas.DataFrame(
    {
        "A": 1.0,
        "B": pandas.Timestamp("20130102"), #一个固定的时间戳
        "C": pandas.Series(1, index=list(range(4)), dtype="float32"), #一个一维数组
        "D": numpy.array([3] * 4, dtype="int32"), #[3,3,3,3]
        "E": pandas.Categorical(["test", "train", "test", "train"]), #整合数据结构
        "F": "foo", #就是一个支付串
    }
)
print(data)
#效果如下
"""
     A          B    C  D      E    F
0  1.0 2013-01-02  1.0  3   test  foo
1  1.0 2013-01-02  1.0  3  train  foo
2  1.0 2013-01-02  1.0  3   test  foo
3  1.0 2013-01-02  1.0  3  train  foo
"""
    

查看每列数据的类型(以上面的案例为查询对象):

import numpy
import pandas
data = pandas.DataFrame(
    {
        "A": 1.0,
        "B": pandas.Timestamp("20130102"), #一个固定的时间戳
        "C": pandas.Series(1, index=list(range(4)), dtype="float32"), #一个一维数组
        "D": numpy.array([3] * 4, dtype="int32"), #[3,3,3,3]
        "E": pandas.Categorical(["test", "train", "test", "train"]), #整合数据结构
        "F": "foo", #就是一个支付串
    }
)
print(data)
#效果如下
"""
A           float64
B    datetime64[ns]
C           float32
D             int32
E          category
F            object
dtype: object
"""
posted @ 2022-03-07 22:15  大泽九章  阅读(48)  评论(0编辑  收藏  举报