文章目录



概述


Pandas是基于Numpy的数据分析模块。
提供了大量数据模型、数据集,数据分析环境



三种数据结构:
Series(一维数组,值序列,包含索引),
DataFrame(二维数组,一组有序列,每列可以是不同类型,行、列索引,看做Series组成的字典),
Panel(Excel的多表单Sheet)


Series

创建

Pandas统计分析基础_数据结构

代码

# 1.Series的创建
# 通过列表创建,左侧自动带有索引
import pandas as pd
obj = pd.Series([1, -2, 3, -4]) #仅有一个数组构成
print(obj)
0    1
1 -2
2 3
3 -4
dtype: int64
# 创建Series时指定索引
i = ["a", "c", "d", "a"]
v = [2, 4, 5, 7]
t = pd.Series(v, index = i, name = "col")
print(t)
a    2
c 4
d 5
a 7
Name: col, dtype: int64
# Series位置和标签的使用
val = [2, 4, 5, 6]
idx1 = range(10, 14)
idx2 = "hello the cruel world".split()

s0 = pd.Series(val)
s1 = pd.Series(val, index = idx1)
t = pd.Series(val, index = idx2)

print(s0.index)
print(s1.index)
print(t.index)
print(s0[0])
print(s1[10])
print('default:',t[0],'label:',t["hello"])
RangeIndex(start=0, stop=4, step=1)
RangeIndex(start=10, stop=14, step=1)
Index(['hello', 'the', 'cruel', 'world'], dtype='object')
2
2
default: 2 label: 2
# Series创建-通过字典
sdata = {'Ohio': 35000, 'Texas': 71000, 'Oregon': 16000, 'Utah':5000}
obj3 = pd.Series(sdata)
print(obj3)
Ohio      35000
Texas 71000
Oregon 16000
Utah 5000
dtype: int64
# 键值和指定的索引不匹配
sdata = {"a" : 100, "b" : 200, "e" : 300}
letter = ["a", "b", "c", "e"]
obj = pd.Series(sdata, index = letter)
print(obj)
a    100.0
b 200.0
c NaN
e 300.0
dtype: float64
# 不同索引数据的自动对齐 运算
sdata = {"a": 1, "b" : 2, "c" : 3, "d" : 4}
obj1 = pd.Series(sdata)
states = ['d', 'b', 'a', 'c']
obj2 = pd.Series(sdata, index=states)
print(obj1+obj2)
a    2
b 4
c 6
d 8
dtype: int64
# 通过字典创建-Series索引的修改
obj = pd.Series([4, 7, -3, -2])
obj.index = ['b', 'ee', 'n', 'y']
print(obj)
b     4
ee 7
n -3
y -2
dtype: int64

DataFrame

创建

Pandas统计分析基础_数据结构_02

代码

# DataDFrame的创建
data = {
'name':['张三', '李四', '王五', '小明'],
'sex':['female', 'female', 'male', 'male'],
'year':[2001, 2001, 2003, 2002],
'city':['北京','上海','广州','北京']

}
df = pd.DataFrame(data)
print(df)
name     sex  year city
0 张三 female 2001 北京
1 李四 female 2001 上海
2 王五 male 2003 广州
3 小明 male 2002 北京
# DataFrame的索引
df1 = pd.DataFrame(data, columns= ['name', 'year', 'sex', 'city'], index=['a', 'b', 'c', 'd'])
print(df1)
name  year     sex city
a 张三 2001 female 北京
b 李四 2001 female 上海
c 王五 2003 male 广州
d 小明 2002 male 北京
# 创建时的空缺值
df2 = pd.DataFrame(data, columns=['name', 'year', 'sex', 'city', 'address'])
print(df2)
name  year     sex city address
0 张三 2001 female 北京 NaN
1 李四 2001 female 上海 NaN
2 王五 2003 male 广州 NaN
3 小明 2002 male 北京 NaN