写于本篇札记结束之后:今天晚上在图书馆写这篇札记的时候,心情很乱,很浮躁,因为工作的原因。最近真的很迷茫!希望快点结束这种状态!
Pandas的主要特点
Pandas
是一个高性能的数据操作和分析工具
- 快速高效的
DataFrame
对象,具有默认和自定义的索引。 - 将数据从不同文件格式加载到内存中的数据对象的工具。
- 丢失数据的数据对齐和综合处理。
- 重组和摆动日期集。
- 基于标签的切片,索引和大数据集的子集。
- 可以删除或插入来自数据结构的列。
- 按数据分组进行聚合和转换。
- 高性能合并和数据加入。
- 时间序列功能。
- pandas中的三大数据结构:
Index
、DataFrame
和Series
导入pandas
import pandas as pd
from pandas import Series, DataFrame
Series简介
Series
主要是针对一维
的数据,另外的DataFrame
是针对多维数据的
Series
是一个一维的数组对象,它包含一个值序列和一个对应的索引序列Series
是显式定义索引和元素关联- 索引不仅是数字,还可以是字符串
- 索引不需要连续,也可以重复
- 可以将
pandas
中的数据看做是类似于Python
中有序字典的形式 - 索引看做是键,数据看做是值
image.png
image.png
s = pd.Series([7, -3, -1, 9])
s
0 7
1 -3
2 -1
3 9
dtype: int64
s.dtype
s.values
s.index
s1 = pd.Series([7, -3, -4, 9, 5], index=["a", "b", "c", "d", "e"])
s2 = pd.Series([7, -3, -4, 9, 5], index=list("abcde"))
s3 = pd.Series([7, -3, -4, 9, 5], index=list("12345"))
image.png
image.png
image.png
>>s4.items()
<zip at 0x2428d151348>
>>list(s4.items())
[('1', 'shenzhen'), ('2', 'zhuhai'), ('3', 'guangzhou'), ('4', 'suzhou')]
>>list(s4.keys())
['1', '2', '3', '4']
>>s4[:]
1 shenzhen
2 zhuhai
3 guangzhou
4 suzhou
dtype: object
number = ["1", "2", "3", "5"]
s5 = pd.Series(dic, number)
s5
1 shenzhen
2 zhuhai
3 guangzhou
5 NaN
dtype: object
pd.isnull(s5)
1 False
2 False
3 False
5 True
dtype: bool
image.png
DataFrame
DataFrame
是Pandas
的二维数据结构,表示的是矩阵数据。
- 类似于关系型数据库的结构,每列是不同的值类型,比如:
数值、字符串、布尔值
DataFrame
同时有行和列索引,看做是共享索引的Series
的字典- 创建方法:利用包含等长度列表或者
Numpy
数组的字典来生成。
image.png
data = {
'state':['beijing','beijing','beijing','shanghai','shanghai','shanghai'],
'year':[2000,2001,2002,2001,2002,2003],
'pop':[1.5, 1.7,3.6,2.4,2.9,3.2]
}
f = pd.DataFrame(data)
f
结果:
image.png
f.head()
f.head(3)
f.tail()
image.png
pd.DataFrame(data, columns=['year', 'state', 'pop'])
image.png
f2 = pd.DataFrame(data,
columns=['year', 'state', 'pop'],
index=['a', 'b', 'c', 'd', 'e', 'f'])
image.png
f2['state']
f2.state
f2.loc['a']
f2['debt'] = 12
image.png
data = {'state':['beijing','beijing','beijing','shanghai','shanghai','shanghai'],
'year':[2000,2001,2002,2001,2002,2003],
'pop':[1.5, 1.7,3.6,2.4,2.9,3.2]
}
df = pd.DataFrame(data, index=list('abcdef'))
df
image.png
df1 = df.loc['a']
df1
state beijing
year 2000
pop 1.5
Name: a, dtype: object
>>f2['new'] = (f2['state'] == 'beijing')
>>f2
image.png
del f2['new']
f2.columns
结果:
Index(['year', 'state', 'pop', 'debt', 'age'], dtype='object')
f2.T
image.png
f2.values # 访问value
f.info() # 查看DF的整体信息
f.drop(index=1)
# f.drop(index=[1,2]) 删除两行数据drop
# 删除某列的数据f.drop(columns=["state","year"])
f.drop(columns=["state"])
import pandas as pd
data = {'state': ['Ohio', 'Ohio', 'Ohio', 'Nevada', 'Nevada', 'Nevada'],
'year': [2000, 2001, 2002, 2001, 2002, 2003],
'pop': [1.5, 1.8, 3.6, 2.4, 2.9, 3.2]}
frame = pd.DataFrame(data)
frame
image.png
pd.DataFrame(data, columns=['year', 'pop', 'state'])
frame2 = pd.DataFrame(data, columns=['year', 'state', 'pop', 'debt'],
index=['one', 'two', 'three', 'four', 'five', 'six'])
print(frame2.columns)
frame2['state']
print(frame2.loc["three"])
frame2.loc[["two", "three"]]
frame2["eastern"] = (frame2["state"] == "Nevada")
frame2
image.png
pop = {'Nevada': {2001: 2.4, 2002: 2.9},
'Ohio': {2000: 1.5, 2001: 1.7, 2002: 3.6}}
frame3 = pd.DataFrame(pop)
print(frame3)
frame3.T
image.png