目前,pandas的基本数据结构有3种,Series,DataFrame和Pandel。要想熟练使用Pandas,这三种数据结构一定要牢记于心。其中DataFrame使用频率最高。
数据结构 | 维度 | 轴标签 |
---|---|---|
Series | 一维 | index(唯一的行) |
DataFrame | 二维 | index(行)和columns(列) |
Pandel | 三维 | items major_axis和 minor_axis |
Series 是一维的,基本创建方式为:
pd.Series(data=None,index=None)
eg.
obj = pd.Series([4, 7, -5, 3, 7, np.nan])
obj~
输出:
0 4.0
1 7.0
2 -5.0
3 3.0
4 7.0
5 NaN
dtype: float64
DataFrame是最最常用的结构,它是一种表格型的数据结构,有行索引和列索引。
创建方式:pd.DataFrame(data=None,index=None,columns=None)
1 numpy 创建
import pandas as pd
import numpy as np
df = pd.DataFrame(np.arange(16).reshape((4,4)),
index=list('abcd'),
columns=['one','two','three','four'])
print(df)~
输出:
one two three four
a 0 1 2 3
b 4 5 6 7
c 8 9 10 11
d 12 13 14 15
2 由Series组成的字典
import pandas as pd
df = pd.DataFrame({'one':pd.Series([0,1,2,3]),
'two':pd.Series([4,5,6,7]),
'three':pd.Series([8,9,10,11]),
'four':pd.Series([12,13,14,15])},
columns=['one','two','three','four'])
print(df)~
输出:
one two three four
0 0 4 8 12
1 1 5 9 13
2 2 6 10 14
3 3 7 11 15
可以看出,行名不指定,默认行号0,1,2…
3.字典
import pandas as pd
data = [{"one":1,"two":2},
{"one":5,"two":10,
"three":15}]
df = pd.DataFrame(data)
print(df)
输出:
one two three
0 1 2 NaN
1 5 10 15.0
import pandas as pd
data = {
"Jack":{"math":90, "english":89, "art":78},
"Marry":{"math":82, "english":95, "art":96},
"Tom":{"math":85, "english":94}
}
df = pd.DataFrame(data)
print(df)~
输出:
Jack Marry Tom
math 90 82 85.0
english 89 95 94.0
art 78 96 NaN
总结:核心来啦–字典的健值作为dataframe的columns。如果没有指定index参数的值,行索引使用默认的数字索引。每个序列的长度必须相同。同样的,pandas会对会对列索引排序,如果显示的传入columns参数,将按照传入的值得顺序显示。
函数 | 说明 |
---|---|
read_csv() | 从csv格式的文件中读取数据 |
read_excel()_ | 从Excel文件中读取数据 |
HDFStore() | 使用HDF5文件读写数据 |
read_sql() | 从SQL数据库中查询结果载入数据 |
read_pickle() | 读入pickle()序列化后的数据 |