pandas模块(很详细归类),pd.concat(后续补充)
6.12自我总结
一.pandas模块
import pandas as pd
约定俗称为pd
1.模块官方文档地址
https://pandas.pydata.org/pandas-docs/stable/?v=20190307135750
2.对一维的数据处理成列表
1.pd.Serirs功能
import numpy as np
import pandas as pd
arr = np.array([1, 2, 3, 4, np.nan, ])
s = pd.Series(arr)
print(s)
#也可以不转换,但是转换后可以减少内存,尽量进行转换
# arr = np.array([1, 2, 3, 4, np.nan, ])
s = pd.Series([1, 2, 3, 4, np.nan, ])
print(s)
3.对二维数据处理成列表
1.pd.DataFrame功能
df = pd.DataFrame(数据内容,index=纵坐标,columns=横坐标)#数据内容必须是列表或者np.array格式,尽量用np.array格式减少内存
#生成的数据列表预定俗称最好命名成df
#对df的取值
2.pd.DataFrame参数表
属性 | 详解 |
---|---|
dtype | 查看数据类型 |
index | 查看行序列或者索引 |
columns | 查看各列的标签 |
values | 查看数据框内的数据,也即不含表头索引的数据 |
describe | 查看数据每一列的极值,均值,中位数,只可用于数值型数据 |
transpose | 转置,也可用T来操作 |
sort_index | 排序,可按行或列index排序输出 |
sort_values | 按数据值来排序 |
4.df进行取值和简单处理
1.df.index
取纵坐标
2.df.columns
取横坐标
3.df.values
取填入的数据并且为array格式
4.df.describe()
计数列表的各个列的个数,最大值,最小值等等
5.df.T
横纵坐标进行对调
6.df.sort_index(axis=0)
根据axis=0或者1按照横坐标或者纵坐标进行排序
7.df.sort_values('按照的对象名称')
按照值进行排序,默认是竖着排序,也可以通过设置axis=0或者1进行修改,默认升序
8.df里的值按行取行
取单行:用切片进行df[0:1]取第一行,但是开始的话横纵坐标是不算在里面的,这里是横坐标的索引
取多行:df.loc[起始横坐标:结束横坐标] 必须是横坐标,纵坐标的名称而不去索引,前后可以相同就取起始横坐标这一行
9.df里的值按列取取列
取某一列,df[这列的对应的横坐标]
取多列,df[[第一列的对应的横坐标,第二列的对应的横坐标]]以此类推
10.df里面按行取值
按行取值df.iloc[2, 1] 第3行第二个
11.df取某个区域
df.iloc[1:4, 1:4] 横坐标是,第2个到第5个,纵向是第二个到第五个
12.df取某个位置的一个值
df['横坐标名称']['纵坐标名称']
df.loc['纵坐标名称','横坐标名称']
13.逻辑取值
df[df['c1'] > 0] 结合上面取值进行判断
14.替换值
结合上面取值进行替换
5.df.dropna
1.df.dropna(axis=1)
axis进行行列选择,横着加还是竖着加
2.df.dropna(thresh=4)
删除行不为4个值的
3.df.dropna(subset=['c2'])
删除c2中有NaN值的数据
6.df重空值进行添加
df.fillna(value=10)空值填充10
7.df进行合并
1.pd.concat((df1, df2), axis=1)
合并行列都可以由axis控制
2.df1.append(df2)
append只能合并列