文章目录
-
1.Series
-
- 1.1创建一个Series
-
1.2创建Series并设置索引
-
1.3索引
-
- 1.3.1一个标签索引
-
1.3.2多个标签索引
-
1.3.3一个位置索引
-
1.3.4多个位置索引
-
1.4切片
-
- 1.4.1标签切片
-
1.4.2位置切片
-
1.5Series的index和values属性
-
2.DataFrame
-
- 2.1创建一个DataFrame对象
-
- 2.1.1不指定index和columns
-
2.1.2指定index和columns
-
2.1.3使用字典创建DataFrame
-
2.2遍历DataFrame对象数据的每一列
-
2.3索引与切片
-
- 2.3.1 loc标签索引
-
- 2.3.1.1获取单行数据
-
2.3.1.2获取多行数据
-
2.3.1.3切片连续多行数据
-
2.3.2iloc位置索引
-
- 2.3.2.1获取某行数据
-
2.3.2.2获取多行数据
-
2.3.2.3切片连续多行数据(左闭右开)
-
2.3.3直接获取指定列数据
-
- 2.3.3.1获取单列
-
2.3.3.2获取多列
-
2.3.4获取指定行、列数据
-
- 2.3.4.1 loc标签索引
-
2.3.4.2 iloc位置索引
-
2.3.5 按指定条件获取(布尔索引)
-
2.4 增加数据
-
- 2.4.1 按列增加数据
-
- 2.4.1.1 直接添加
-
使用insert()方法添加
-
2.4.2 按行增加数据
-
- 2.4.2.1 增加一行
-
2.4.2.2 增加多行数据
-
2.5 修改列名&索引
-
- 2.5.1修改列名
-
2.5.1.1 通过DataFrame的columns属性
-
- 2.5.1.2 通过DataFrame的rename()方法
-
2.5.2 修改索引(index)
-
- 2.5.2.1 通过index属性
-
2.5.2.2通过rename方法
-
2.6 修改数据
-
-
- 2.6.1 使用loc
-
-
- 修改整行数据
-
修改整列数据
-
修改指定某一数据
-
2.6.2 使用iloc
-
- 修改整行数据
-
修改整列数据
-
修改指定某一数据
-
2.7 删除数据
-
- 2.7.1 删除某列
-
2.7.2 删除某行
-
2.7.3删除特定条件的行
-
2.8 打印DataFrame的简短摘要
-
2.9 处理缺失值与重复值
-
- 2.9.1处理缺失值
-
- 2.9.1.1 准备缺失值
-
2.9.1.2 删除该缺失值所在行
-
2.9.1.3获取某字段没有缺失值 的行
-
2.9.1.4 填充缺失值
-
- 2.9.1.4.1 填充所有缺失值
-
2.9.1.4.2 填充局部缺失值
-
2.9.2 处理重复值
-
- 2.9.2.1准备数据
-
2.9.2.2 判断重复值
-
- 2.9.2.2.1 判断整行数据是否重复
-
2.9.2.2.2 判断某字段数据是否重复
-
2.9.2.3 去重
-
- 2.9.2.3.1 删除整行重复值
-
2.9.2.3.2 删除某字段重复 的行
-
2.10设置索引
-
- 2.10.1 reindex
-
- 缺失值以0填充
-
缺失值向前/向后填充
-
重新设置行索引、列索引和行列索引
-
2.10.2 set_index
-
- 2.10.2.1 设置某列为index
-
2.10.2.2 设置drop=True
-
2.11排序
-
- 2.11.1 sort_values()单列排序
-
2.11.2 sort_values()多列排序
-
2.11.3 group_by()对统计结果排序
-
2.11.4横向排序 axis=1
-
2.11.5 排名 rank()
-
3.pandas读取文件
-
- 3.1read_excel()
-
- 3.1.1准备数据
-
3.1.2默认方式读取
-
3.1.3设置index_col参数
-
3.1.4设置header参数
-
3.1.5设置usecols参数
-
3.1.6设置sheet_name参数以指定工作簿
-
3.1.7解决数据输出时列名不对齐的问题
-
3.2read_csv()
-
- 3.2.1设置encoding参数
-
3.2.2设置sep参数指定分隔符
-
3.3read_html()小案例
-
- 3.3.1pd.read_html()方法
-
3.3.2DataFrame的append()方法
-
3.3.3pd.to_csv()方法
==============================================================================
s1 = pd.Series([11, 22, 33])
print(s1)
索引默认为0,1,2
s2 = pd.Series([11, 22, 33], index=[1, 2, 3])
s3 = pd.Series([11, 22, 33], index=[‘a’, ‘b’, ‘c’])
print(s2)
print(s3)
索引方式默认优先标签索引,如果标签不存在,则尝试位置索引。
如果位置也不存在(out of bounds),则报错IndexError。
1.3.1一个标签索引
print(s2[1])
1.3.2多个标签索引
print(s2[[‘a’, ‘b’]])
1.3.3一个位置索引
print(s3[1])
1.3.4多个位置索引
print(s3[[0, 2]])
1.4.1标签切片
切片方式为左闭右闭([,]),即两个边界值都可取。
print(s3[‘a’: ‘c’])
1.4.2位置切片
同样优先视为标签,如果标签不存在则视为位置。当Series索引默认为0,1,2…时不用考虑该区分。
s4 = pd.Series([70, 82, 69, 90, 64])
位置索引做切片
print(s4[1:4])
Series对象有index和value属性,可直接调用进行查看。
import pandas as pd
s1 = pd.Series([50, 56, 74, 85])
print(s1.index)
print(s1.values)
=================================================================================
2.1.1不指定index和columns
当不指定index和columns时,默认为0, 1, 2。
import pandas as pd
data = [[120, 115, 109], [101, 100, 112], [106, 110, 125]]
df = pd.DataFrame(data=data)
print(df)
2.1.2指定index和columns
import pandas as pd
data = [[120, 115, 109], [101, 100, 112], [106, 110, 125]]
index = [0, 1, 2]
columns = [‘AAA’, ‘BBB’, ‘CCC’]
df = pd.DataFrame(data=data, index=index, columns=columns)
print(df)
2.1.3使用字典创建DataFrame
键为列名,值为该列数据组成的列表。值也可以是单个元素,表示该列都取该值。
import pandas as pd
df = pd.DataFrame({
‘AAA’: [120, 101, 106],
‘BBB’: [115, 100, 110],
‘CCC’: [109, 112, 125],
‘DDD’: ‘ABCDEFG’
}, index=[0, 1, 2])
print(df)
for col in df.columns:
series = df[col]
print(series)
2.3.1 loc标签索引
2.3.1.1获取单行数据
import pandas as pd
df = pd.DataFrame({
‘AAA’: [120, 101, 106, 117, 114, 122],
‘BBB’: [115, 100, 110, 125, 123, 120],
‘CCC’: [109, 112, 125, 120, 116, 115],
‘DDD’: ‘ABCDEFG’
}, index=[1, 2, 3, 4, 5, 6])
print(df)
print("=======================")
print(df.loc[1])
df.loc[1]获取到标签索引为1的数据,在这里即第一行的。
2.3.1.2获取多行数据
print(df)
print("=======================")
print(df.loc[[1, 3]])
2.3.1.3切片连续多行数据
标签索引切片时左右边界的值都可以取。
print(df)
print("=======================")
print(df.loc[1:5])