pandas——DataFrame

1.选择数据:Pandas使用loc[]方法来选择行的数据
选择单行数据:df.loc[3]、df.loc[:,[‘a’,‘c’]]
df.loc[[2,5,10]] # 返回行标号为2,5,10三行数据
df.loc[3:6] # 使用了切片,注意:由于这里使用loc[]函数,所以返回的是行标号为3,4,5,6的数据,与python的切片不同的是这里会返回最后的标号代表的数据,但也可以使用python的切片方法:food_info[3:7]

选择指定区域数据:
df.iloc[0:5]、df.iloc[0,1]—第0行第1列的数据
df.iloc[1:4,[0,2]];df.iloc[:,[0,2]]
df.iloc[:3,:2]
2.查看维度/显示数据格式:df.shape
3.显示某列的数据类型:df[“age”].dtype;查看各列的数据类型:
4.与Numoy一样,用dtype属性显示数据类型:df.dtypes
object–字符串类型;int–整形;float–浮点数类型;datetime–时间类型;bool–布尔类型
5.查看列名称:df.columns;查看索引:df.index
6.查看前5行、后5行的数据:df.head()、df.tail()
查看前3行数据:df.head(3)
7.用0填充空值:df.fillna(-100)
8.设置索引列:df.set_index(‘time’)
9.重设索引:df.reset_index()
10.删除某行/某列:df0 = df.drop(‘label’,axis=1)
11.返回行数:df.shape[0]、len(df);返回列数:df.shape[1]
12.将csv文件中的-105用-100代替:df.replace(-105,-100,inplace=True)
13.得到每列数据的总量、平均值、最小值、25%、50%、75%和最大值:df.describe()
14.去除DataFrame中的nan空值:df0 = df.dropna()
15.将DataFrame转换成array:arr = df0.values
16.求每一列的最小值:df.iloc[:,0:520].min()
17.去除重复数据,得到不重复的值:df.drop_duplicates(subset=None,keep=‘first’,inplace=True)
(可指定列数;‘first’:删除第一次出现的重复项,‘last’:最后一次,‘False’:所有重复项;‘False’:表示生成一个副本,‘True’:表示在原来df上删除重复项)
18.df.loc[df[“BUILDINGID”==0][“FLOOR”].unique()
(先取出“BUILDINGID”==0的所有数据,再取出“FLOOR”列中的唯一值,返回数组)
19.检查df中是否有空值:df1 = df.isnull().sum()
计算空值的数量:df2 = df1.sum()
20.df的合并:
pd.concat([df0,df1],axis=1)—左右合并
pd.concat([df0,df1],axis=0/不写)—上下合并
21.添加标签:
combined = df.assign(label=(df[‘Longitue’].astype(str)+’’+df[‘Latitude’].astype(str)+’’+df[‘Floor’].astype(str)).astype('category).cat.codes)
len(combined[“label”].unique())
22.DataFrame转换成列表:df.tolist()
23.Pandas使用Series数据结构来表示一行或一列的数据,类似于Numpy使用向量来表示数据。Numpy只能使用数字来索引,而Series可以使用非数字来索引数据,当你选择返回一行数据的时候,Series并不仅仅返回该行的数据,同时还有每一列的标签的名字。
24.读取数据:Pandas使用函数read_csv()来读取csv文件
train_ df = pd.read_csv(‘E:\wifi定位数据集\library dataset\dataset_all\01\train_floor3.csv’,header = None)
25.Pandas直接把列名称填充就能返回该列的数据:
df[“NDB_No”]# 返回列名称为NDB_No的那一列的数据
df[[“Zinc_(mg)”,“Copper_(mg)”]]# 返回两列数据

26.简单运算:对DataFrame中的某一列数据进行算术运算,其实是对该列中的所有元素进行逐一的运算。
由于每一列的数据跨度太大,有的数据是从0到100000,而有的数据是从0到10,所以为了尽量减少数据尺度对运算结果的影响,采取最简单的方法来规范化数据,那就是将每个数值都除以该列的最大值,从而使所有数据都处于0和1之间。其中max()函数用来获取该列的最大值,如:df[‘Protein_(g)’].max()

27.对DataFrame的某一列数据排序,只需要使用函数sort()即可。
df.sort(“Sodium_(mg)”) # 函数参数为列名,默认是按照升序排序,同时返回一个新的DataFrame
df.sort(“Norm_Nutr_Index”, inplace=True, ascending=False )# 通过inplace参数来控制在原表排序,而不是返回一个新的对象;ascending参数用来控制是否升序排序

28.添加新列:只需要使用中括号和赋值符就能添加新列,类似于字典

在这里插入图片描述

在这里插入图片描述

链接:https://www.jianshu.com/p/96cebbe35cd9;https://www.jianshu.com/p/4ff1d2b23ab3

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值