首页 > 编程语言 >python学习笔记七:DataFrame

python学习笔记七:DataFrame

时间:2023-02-18 10:07:41浏览次数:32  
标签:index 索引 python Series 笔记 df DataFrame columns


1.Series是ndarray的升级,而DataFrame是Series的升级,从一维拓展到多维

DataFrame的属性:index,colums,values,shape

import numpy as np
import pandas as pd
from pandas import Series,DataFrame
import matplotlib.pyplot as plt

df = pd.read_csv('admissions.csv')
print(df.head())

gpa = df['gpa']#是一个Series
print(gpa.head())

print(type(df))
print(type(gpa))

print(df.index,df.columns,df.values,df.values.shape)

2.DataFrame的创建

最常用的方法是传递一个字典来创建。DataFrame以字典的键作为每一列的名称,以字典的值(一个数组)作为每一列。此外,DataFrame会自动加上每一行的索引(和Series一样)。

同Series一样,若传入的列与字典的键不匹配,则相应的值为NaN

#使用字典创建
df = DataFrame({'height':[175,180,169,188],'age':np.random.randint(18,25,size=4),
'sex':['男','女','女','男']},columns=['height','age','sex','weight'],index = list('ABCD'))

#使用属性创建
df = DataFrame(data=np.array([[150,0],[150,0],[150,0],[300,0]]),columns=['张三','李四'],
index=['语文','数学','英语','理综'])

3.DataFrame的索引和切片

(1).对列进行索引:

通过类似字典的方式

通过属性的方式

可以将DataFrame的列获取为一个Series,返回的Series拥有原DataFrame相同的索引,且name属性也有了,就是相应的列名

(2).对行进行索引:

使用.loc[]加index来进行索引

使用.iloc[]加整数来进行索性

#对列索引
df['age'] #通过字典方式对列索引,检索列返回值是一个Series
df.sex #通过属性对列列索引,对于DataFrame而言,它的列名就相当于它的属性

#对行索引
df.loc['A'] #显示索引,返回一行是一个Series
df.iloc[1] #隐式索引
df.loc[['A','B']] #返回多行,将多行索引以列表的形式传入,返回的是一个DataFrame

#对元素索引
df['age']['A']或df['age'].loc['A'] #显式索引,按列,可对其进行修改
df.loc['A']['sex'] #按行
df.values[2,0] #因为values是一个ndarray,所以也可以通过访问数组的方式访问元素

#行切片,列没有切片
df.loc['A':'C'] #显式切片,左闭右闭
df.iloc[1:3] #隐式切片,左闭右开

4.DataFrame的运算

#DataFrame与DataFrame的运算
df1 = DataFrame(np.random.randint(0,150,size=(4,4)),index=['张三','李四','王五','赵六'],
columns=['语文','数学','英语','python'])
df2 = DataFrame(np.random.randint(0,150,size=(5,4)),index=['张三','李四','王五','赵六','童七'],
columns=['语文','数学','英语','python'])

#使用pathon自带的相加
df1+df2 #没有对应索引的一行为NaN

#使用DataFrame.add方法的相加
df1.add(df2,fill_value=0) #将没有对应索引的一行添加一相同索引,其元素值用fill_value的值填充


#DataFrame与Series的运算
ss1 = df3.python #提取一列
df3.add(ss,axis='index') #按DataFrame的行索引相加,则Series的index要与DataFrame的index一样

ss2 = df3.loc['张三'] #提取一行
df3.add(ss2,axis='columns') #按DataFrame的列索引相加,则Series的index要与DataFrame的columns一样

 

标签:index,索引,python,Series,笔记,df,DataFrame,columns
From: https://blog.51cto.com/u_14036511/6065045

相关文章

  • python学习笔记六:Series
    Series是一种类似于一维数组的对象,由以下两部分组成:values:一组数据(ndarray或list类型)index:相关的数据索引标签一维数组默认索引为0,1,2,3...,而Series的索引可以自己给定......
  • python学习笔记五:numpy
    ndarray是一个多维数组的数据结构1.彩色图像是一个三维数组,通过matplotlib显示图像#显示图像importnumpyasnpimportmatplotlib.pyplotaspltfish=plt.imread('HappyF......
  • opencv学习笔记七十一:图像修复
    当我们的照片有划痕或遭到人为的涂鸦(比如马赛克)时,如果我们想让这些遭到破坏的图片尽可能恢复到原样,Opencv能帮我们做到吗?答案是肯定的。那么图像修复技术的原理是什么呢?简......
  • python学习笔记四:字典
    字典和集合一样是无序的,不能通过索引来存取,只能通过键来存取。字典的键必须是不可变的数据类型,如数字,字符串,元组等,列表等可变对象不能作为键。不允许同一个键出现两次,创建......
  • python学习笔记三:元组和集合
    学习python的小伙伴们经常会有这样一个疑问,既然有列表里,问什么还要有元组呢。因为列表是可变的,而元组是不可变的。比如我们经常需要传入函数的数据是不变的,这时就要用到元组......
  • python学习笔记二:列表
    列表通过索引读取数据:#索引读取数据a=[1,2,3]a[-1]运行结果:3列表支持嵌套:b=[[1,2,3],[4,5,6]]print(b)运行结果:[[1,2,3],[4,5,6]]列表可以修改:b=[[1,2,3],[4,5,6......
  • python学习笔记一:基本数据类型
    1、python的一切都是对象,对象是包含属性和方法的一个整体。2、数据类型的组成:身份(内存地址,通过id方法可看它的唯一标识符);类型(通过type方法查看);值(数据项)3、常用基本数据类型......
  • 新概念2册L33笔记(介词+空间)
    L33Outofthedarkness重点词汇explainv.explainsthtosb向某人解释explanationn.stormn.heavystorms暴风雨towardsprep.向、朝、(在空间/时间上接近)strug......
  • python-菜鸟娱乐
    计算两个数的最大公约数点击查看代码defcommon_divisor(m,n):whilem:ifm<n:t=mm=nn=t......
  • ubuntu18.04 添加python3.8环境
    默认是3.6,最好不要动,不要升级,直接加一个3.8环境进去就好。1、准备工作sudoaptupdatesudoaptinstallsoftware-properties-common 2、将DeadsnakesPPA添加到系......