首页 > 其他 > 详细

DataFrames

时间:2020-12-25 11:39:48      阅读:32      评论:0      收藏:0      [点我收藏+]

Course outline

Chapter 1: DataFrames 

  • Sorting and subsetting
  • Creating new columns

Chapter 2:Aggregating Data

  • Summary statistics
  • Counting
  • Grouped summary statistics

Chapter 3:Slicing and Indexing Data

  • Subsetting using slicing
  • Indexes and subsetting using indexes

Chapter 4:Creating and Visualizing Data 

  • Plotting
  • Handling missing data
  • Reading data into a DataFrame

 

Chapter 1

.head() : 返回前五行

.info() : 返回每一列的信息,例如数据类型和丢失的值(是否有null) 

.shape :返回字典的行和列内容

.describe() : 计算每一列的一些描述性统计,例如count、mean、std、min、25%、50%、75%、max

.values :返回对应的二维NumPy值数组

.columns : 返回列名

.index : 返回行的索引,通常为行号

.isin() : 选择限定的条件 dog["colors"].isin(["Black","Brown"])

.sort_values() : 选定2列进行排序,先按第一列排序,第一列相同时按第二列排序,并且指定2列的排列顺序  df.sort_values(["a","b"],ascending=[True,False])

按要求构造字典的子集(多个要求):dogs[(dogs["a"] > 10) & (dogs["b"] == "regions")]

 

Chapter 2

.agg(函数名1)/.agg([函数名1,函数名2]) 使用df的列名调用agg(),将会对这列执行agg中的函数

.cumsum()  - np.cumsum(a) 输入一维数组/列表,当前列之前的和加到当前列上

           - np.cumsum(a,axis=0/1) 输入二维数组/列表,可以使用axis指定累积求和的方向; axis=0 将上一行累加到当前行;axis=1 将上一列累加到当前列

       - np.cumsum(a,axis=0/1/2) 输入三维数组/列表

                    技术分享图片

.cummax() 累积和

.cumprod() 累积积

.drop_duplicates(subset="name") 去除一列的重复项

.drop_duplicates(subset=["name","is_holiday"]) 去除两列的重复项

.value_counts(normalize=False, sort=True, ascending=False, bins=None, dropna=True) 统计df或series中不同数或字符串出现的次数,返回一个序列series,该序列包含每个值的数量

           参数:normalize : boolean, default False    如果为True,则返回的对象将包含唯一值的相对频率。

              sort : boolean, default True             按值排序

              ascending : boolean, default False   按升序排序

        bins : integer, optional            而不是数值计算,把它们分成半开放的箱子,一个方便的pd.cut,只适用于数字数据

        dropna : boolean, default True         不包括NaN的数量

 

groupby

聚合1列: df.groupby("列名")["被计算的列"].agg([min,max,sum]) 

聚合2列:df.groupby(["列名1","列名2"])["被计算的列"].mean()

聚合2列计算2列: df.groupby(["列名1","列名2"])[["被计算的列1","被计算的列2"]].mean()

技术分享图片

 

技术分享图片

 

 

 

  •  pivot_table(data, values=None, index=["列名1","列名2"], columns=Nones,aggfunc=[np.mean,np.sum...],fill_value=None,margins=False,dropna=True,margins_name=‘All‘):透视表

index:表示索引列(层次字段),要通过透视表获得哪些列的信息,就按照相应的顺序设置字段,如果设置多个列名,结果是一样的。

values:对需要的计算数据进行筛选,筛选的是index索引到的表的指定列

aggfunc:设置我们对数据聚合时进行的函数操作,未设置aggfunc时,默认为mean计算均值

columns: 类似index设置列层次字段,它不是一个必要参数,作为一种分割数据的可选方式

fill_value: 设置填充空值

margins = True :表最后一列为ALL 内容为行均值

  • groupby和pivot_table转化

dogs.groupby(["color","breed"])["weight_kg"].mean()

dogs.pivot_table(values="weight_kg",index="color",columns="breed")

技术分享图片

 

 

Chapter 3

df[df["列名"].isin(["aaa","ca"])]  选择某列等于多个数值或者字符串,isin()括号内应该是个list

df.sort_values()  既可以根据列数据,也可根据行数据排序,必须要指定哪几行/列

df.sort_index(level="列名",ascending=True/False) 默认根据行标签对所有行排序,或根据列标签对所有列排序

df.set_index("xxx") 设置索引列

.loc["aaa":"bbb"] 索引aaa到bbb

.iloc[n] 通过行号获取行数据,不能是字符

 

print(\n,test1.iloc[0])#读取‘One‘行数据
print(\n,test1.iloc[0,0:3])#读取‘One‘行,‘a‘:‘c‘列的数据
print(\n,test1.iloc[0:3,0:3])#读取‘One‘:‘Three‘行,‘a‘:‘c‘列的数据
print(\n,test1.iloc[[0,2],0:3])#读取‘One‘,‘Three‘,:‘Three‘行,‘a‘:‘c‘列的数据

 

 

 

日期之间比较,可以使用数字比较

筛选日期从2020年至2011年: temperatures[(temperatures["date"] >= "2020-01-01") & (temperatures["date"] <= "2011-12-31")]

 

# Get 23rd row, 2nd column (index 22, 1)
print(temperatures.iloc[22,0:1])

# Use slicing to get the first 5 rows
print(temperatures.iloc[0:5,:])

# Use slicing to get columns 3 to 4
print(temperatures.iloc[:,2:4])

# Use slicing in both directions at once
print(temperatures.iloc[0:5,2:4])

DataFrames

原文:https://www.cnblogs.com/zhoujingye/p/14169636.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!