跟随菜鸟教程学习的过程中记录。
仅记录自己不熟悉的地方,以及与Java、C存在明显差异的地方。
主要数据结构是 Series
(一维数据,一维数组)与 DataFrame
(二维数据,表格型数据结构)
特殊字符串变量
__version__
前后都是两个下划线。
__init__
也是前后各自双下划线
list、tuple有序,可以通过索引获取。
-
Series
类似表格中的一列;由索引和列组成,索引默认从0
开始。
创建:1.使用list
创建; 2.使用字典创建,字典的key
直接变为索引。
pandas.Series(data, index, dtype, name)
-
DataFrame
可以看作是Series
的字典,共用一个索引
pandas.DataFrame(data, index, columns, dtype)
index,索引值,也可称为行标签
columns,列名称
创建:1.
NumPy Ndarray
对象也可用于创建DataFrame
; 2.字典创建,其中的key
为列名,(相当于按行插值)。3.由Json字符串
创建(因为Json与字典具有相同的格式)。
loc属性
pandas可以使用loc属性
返回指定的行数据,默认索引从0
开始。返回的其实是一个Series
数据类型。也可以指定index
的值,返回指定的行数据。
csv格式
CSV逗号分隔值(comma-sepatared values)
df.to_string()
返回DataFrame
类型数据;直接输出,会返回列表数据的展示结果。
to_csv()
存储数据
df.head() # 读取前几行数据
df.tail() # 返回最后几行数据
df.info() # 返回表格的基本信息
JSON格式
-
JSON(JavaScript Object Notation,Java对象表示法)
df = pd.read_json()
print(df.to_string()) # 返回DataFrame类型的数据
-
直接处理Json字符串:
df = pd.DataFrame(data) # 将Json转为DataFrame格式(因为Json与字典具有相同的格式)
-
对于内嵌的JSON数据
import pandas as pd import json # 使用 Python JSON 模块载入数据 with open('nested_list.json','r') as f: data = json.loads(f.read()) # 展平数据 df_nested_list = pd.json_normalize(data, record_path =['students']) print(df_nested_list) # # 展平数据,包含json外的元素 # df_nested_list = pd.json_normalize( # data, # record_path =['students'], # meta=['school_name', 'class'] # )
-
更复杂格式的转换
使用到
glom 模块
来处理数据套嵌,glom 模块
允许我们使用.
来访问内嵌对象的属性
数据清洗
-
删除空字段所在行
dropna(axis=0, how="any", subset=None, inplace=True) # inplace操作后会将结果覆盖原文件,默认为False。
-
subset
,设置想要检查的列(该列中出现空值才会删除整行)。 -
pandas会将
n/a
、NA
当作空数据,na
不是。但是可以指定空数据类型。 -
替换/填补空字段
fillna() # 常用方法是计算列的均值mean()、中位数值median()、众数mode(),然后传入fillna()中作为参数进行修改。
-
格式错误 - 清洗
-
时间格式
-
重复数据的清洗
duplicated() # 检查数据是否有重复
drop_duplicates()