pandas——Datafram 基本操作方法
https://www.jianshu.com/p/c4266e14ecbe
https://zhuanlan.zhihu.com/p/258097637
Datarame表示一个表格,类似电子表格的数据结构,包含一个经过排序的列表集。在底层是一个或多个二维数组,而不是一维的数组(列表,字典)。
方法1:直接生成Datafram
df=pd.DataFrame([[1,2,3],[2,2,2]],index=['a','b'], columns=['e','f'])
方法2:字典转化为Datafram
dic1={'name':['小明','小红'],'age':[17,20],'gender':['男','女']}
df=pd.DataFrame(dic1)
方法3:读取txt/excel文件输出Datafram
df = pd.read_excel(“file_name.xlsx”)
方法4:从矩阵A转化为Datafram
df= pd.DataFrame.from_records(A,columns=name)
获取行列名称
df.index 行名称
df.columns 列名称
df._info_axis_ 列名称
获取 行高、列高
df.shape 行、列高度
df.index.size 行高
df.columns.size 列高
len(df) 输出的是行高
取行
df.loc['A']取名为'A'的行(取单行后是Series,有index而无columns,可以用name来获取单列索引)
df[0:2]取索引对应的行
df.head(4)取头四行
df.tail(3)取尾三行
df.iloc[1] 绝对索引第一行
取列
df['x'] ,格式为series
df[['x']] 格式为Dataframe ,取出来的是array而不是series
df[['w','z']] 格式为Dataframe
切片,
df[df.columns[0:3]] 按照索引位置来取列,先用索引取列名,再用列名取列
df['name'].values 取列名为'name'的列的值(取出来的是array而不是series)取单行后是一个Series,Series有index而无columns,可以用name来获取单列的索引
df.iloc[1,1] 根据绝对索引来取值
df.iloc[0:3, [0,1]]
df.loc[:,['x','z'] ] #表示选取所有的行以及columns为x,z的列
替换与删除,去除nan值
拼接 拆分,插入行/列
计算 排序,sum默认对每列求和,两个series可以直接进行加减乘除计算
显示 最大行数和列数,单元格内容对齐
多重索引
https://www.jianshu.com/p/c4266e14ecbe
获取各个列分别占用的内存
可以使用 DataFrame 类型的 memory_usage(deep=True)
numpy产生随机数的函数
numpy.random.randn(d0, d1, …, dn) 产生N维矩阵, 从标准正态分布中返回一个或多个样本值。
实例: np.random.rand(3,3) 建立一个3x3的矩阵 ,随机数
numpy.random.rand(d0, d1, …, dn) 产生N维矩阵, 随机样本位于[0, 1)中。
实例: np.random.randn(3,3) 建立一个3x3的矩阵 ,正态分布的随机数
https://blog.csdn.net/r6Auo52bK/article/details/80267718
网友评论