1、常用属性如下 ndim 返回DataFrame的维数; shape 返回DataFrame的形状; dtypes 返回DataFrame中每一列元素的数据类型; size 返回DataFrame中元素的个数 ; T 返回DataFrame的转置结果; index 返回DataFrame中的索引; columns 返回DataFrame中的列索引; values 返回DataFrame中的数值; 2、演示如下 的维数; df = pd.DataFrame(np.random.randint(70,100,(3,5)), index=["地区1", "地区2", "地区3" 的形状; df = pd.DataFrame(np.random.randint(70,100,(3,5)), index=["地区1", "地区2", "地区3" ⑧ values:返回DataFrame中的数值; df = pd.DataFrame(np.random.randint(70,100,(3,5)), index
1、DataFrame算术运算 加:add 或 + 减:sub 或 - 2、DataFrame与标量之间的运算(这个才是最重要的) 1)原始数据 x = [[np.nan,1,1,1,1],[2,2,np.nan = pd.DataFrame(x,columns=list("abcde")) display(df) # DataFrame与标量的运算:df中的每个元素与100一一相加 df1 = df + 3、DataFrame与DataFrame之间的运算 1)原始数据 x = pd.DataFrame({"a":[1,2,3], "b":[2,3,4], "d":[3,4,5]}, index=[1,2,3]) display(y) 结果如下: 2)DataFrame与DataFrame之间的减法运算 ① 使用“+ 与DataFrame之间的运算,由于DataFrame中的每一元素都由其行列索引唯一确定,也就是说DataFrame中的每一元素都有一个(行索引,列索引)构成的坐标 。
2核2G云服务器 每月9.33元起,个人开发者专属3年机 低至2.3折
从每一行看,DataFrame可以看作是一行行的Series序列上下堆积起来的,每个Series的索引就是列索引[0,1,2,3];从每一列看,DataFrame可以看作是一列列的Series序列左右堆积起来的 DataFrame的默认理解方式是:DataFrame其实就是由很多个数据类型不一样的列Series组成。 对于上图,此DataFrame其实就是由如下四个Series组成,它们的索引都是行索引[0,1,2]。 2、DataFrame的index属性和columns属性 1)构造一个DataFrame import numpy as np import pandas as pd df = pd.DataFrame 的name属性 我们知道:取出DataFrame中的每一行、每一列都是一个Series,组成这个DataFrame对象的每个sereis都有一个名称,这个名称,就是对应的那一行、列的索引。
1、利用字典生成DataFrame ① 第一种方式:列表组成的字典 stu = { "name":["张三","李四","王燕"], "age":[18,20,22], "sex":["男","男","女"] } df = pd.DataFrame(stu) display(df) 结果如下: ② 第二种方式:上述方式的一般形式 person = { (data) display(df) 结果如下: 注意:对于上述两个DataFrame,我们直接可以使用data.T进行DataFrame行、列之间的转换。 3、利用二维数组生成DataFrame(常用) x = np.arange(1,21).reshape(4,5) index = list("abcde") df = pd.DataFrame(x,index 最好的方式就是将文件读取成DataFrame方式,然后利用各种方式进行数据处理。由于文件格式众多,这里不细说,你需要读取哪一种文件,就自行百度学习一下,即可。
1、常用函数说明 在df中使用统计函数,其实很简单,我们主要关注以下3点,就没问题: ① 了解每个函数的具体含义是什么; ② 不管是Series还是DataFrame,默认都是自动忽略NaN 值,进行运算的; ③ DataFrame有行、列区分,因此在使用统计函数的时候,一般是结合axis=0或者axis=1参数对df中的哪一行、哪一列进行操作; 注意:axis的具体含义,在操作DataFrame ") df.sum(axis=1) df.sum(axis=0) 结果如下: 3、median、abs、mod、prod、var、std # 我们就用一列来讲述这几个函数的用法 df = pd.DataFrame df = pd.DataFrame({"id":["00{}".format(i) for i in range(1,10)], "score":[2,3,4,4,5,6,7,7,8 df = pd.DataFrame({"id":["00{}".format(i) for i in range(1,10)], "eat_hand":["right
1、相关函数说明 2、原始数据 df = pd.DataFrame({"id":["00{}".format(i) for i in range(1,10)], "score":[2,3,4,4,5,6,7,7,8]}) display(df) 结果如下: 3、cumsum()函数:求前n个元素的累积值(很重要的一个函数) df = pd.DataFrame display(df) df["cumsum"] = df["score"].cumsum(axis=0) display(df) 结果如下: 1)cumsum():分组求累计值 df = pd.DataFrame "id").cumsum() df = df.sort_values(by=["id"]) display(df) 结果如下: 4、cummax()函数:求前n个元素中的最大值 df = pd.DataFrame 5、cumprod()函数:求前n个元素的累乘积 df = pd.DataFrame({"score":[1,2,1,5,2,6,3,7,1]}) display(df) df["前n个值的累乘积"]
1、DataFrame逻辑运算 逻辑运算符号:> >= < <= == !
=4c36823786ffae864979fa71dff6f3b1&sub=0B0848DE6BD740FFB5198B8B3DF63EDE 3、增 1)增加行 ① df.loc() df = pd.DataFrame 1,2,3,4],index=df.columns) display(df) 结果如下: ② df.append():该函数用法很多,这个例子是向append()中传入一个Series df = pd.DataFrame 1,1,1,1],index=list("ABCD"),name="f") display(x) df.append(x) 结果如下: 2)增加列 ① 增加一列:df[“新列名”] df = pd.DataFrame ["E"] = pd.Series([6,6,6,6,6],index=df.index) display(df) 结果如下: ② 在指定列后面增加一列:df.insert() df = pd.DataFrame index=list("abcde")) display(df) df.drop(["a","d"],axis=0) 结果如下: 2)删除一列:df.drop(axis=1) df = pd.DataFrame
1、说明 DataFrame中的排序分为两种,一种是对索引排序,一种是对值进行排序。 注意:axis=0表示对行操作,axis=1表示对列进行操作;ascending=True表示升序,ascending=False表示降序;inplace=True表示对原始DataFrame本身操作, 因此不需要赋值操作,inplace=False相当于是对原始DataFrame的拷贝,之后的一些操作都是针对这个拷贝文件进行操作的,因此需要我们赋值给一个变量,保存操作后的结果。 2、索引排序:df.sort_index() ① 对行索引,进行升序排列 df = pd.DataFrame({"A":[1,3,5,7,9], "D":[1,2,3,4,5 df = pd.DataFrame({"A":[10,8,np.nan,2,4], "D":[1,7,5,3,8], "B":
DataFrame是一种不可变的分布式数据集,这种数据集被组织成指定的列,类似于关系数据库中的表。 SchemaRDD作为Apache Spark 1.0版本中的实验性工作,它在Apache Spark 1.3版本中被命名为DataFrame。 对于熟悉Python pandas DataFrame或者R DataFrame的读者,Spark DataFrame是一个近似的概念,即允许用户轻松地使用结构化数据(如数据表)。 使用Spark DataFrame,Python开发人员可以利用一个简单的并且潜在地加快速度的抽象层。最初Spark中的Python速度慢的一个主要原因源自于Python子进程和JVM之间的通信层。 对于python DataFrame的用户,我们有一个在Scala DataFrame周围的Python包装器,Scala DataFrame避免了Python子进程/JVM的通信开销。
.; SQLContext sqlContext = new SQLContext(sc); DataFrame df = sqlContext.read().json("hdfs://spark1:9000 JavaSparkContext sc = new JavaSparkContext(conf); SQLContext sqlContext = new SQLContext(sc); DataFrame
1、学习DataFrame元素获取,需要掌握以下几个需求 访问一列 或 多列 访问一行 或 多行 访问某个值 访问某几行中的某几列 访问某几列中的某几行 2、构造一个DataFrame df = pd.DataFrame 不管是单独获取到多行、还是多列,得到的都是一个DataFrame。 type(x)) # 获取一行 y = df.loc["地区1"] display(y) display(type(y)) 结果如下: 3、访问一列或多列:传入单个标签或标签数组 df = pd.DataFrame ② iloc位置索引 df = pd.DataFrame(np.random.randint(70,100,(4,5)), index=["地区1", "地区2", ① 先访问“地区3”这一行,再访问95这个数据 df = pd.DataFrame({"武汉":[78,99,81,77], "天门":[74,97,96,97],
在spark-shell状态下查看sql内置函数: spark.sql("show functions").show(1000) 比如:SUBSTR(col...
Dataframe 读写 手动创建 from pyspark.sql import SparkSession spark = SparkSession.builder.appName("Spark"). getOrCreate() 创建一个列表,列表的元素是字典,将其作为输出初始化 DataFrame: data = [{"Category": 'A', "ID": 1, "Value": 121.44 Pandas Dataframe,然后在保存为 csv 文件 # Convert a Pandas-on-Spark Dataframe into a Pandas Dataframe df.toPandas ps_df = ps.DataFrame(range(10)) # Convert a Pandas-on-Spark Dataframe into a Pandas Dataframe pd_df = ps_df.to_pandas() # Convert a Pandas Dataframe into a Pandas-on-Spark Dataframe ps_df = ps.from_pandas
sparksql不止有sql语句,现在他还有Dataframe的API,Dataframe比写RDD要快。dataframe将非结构化数据schema化。 sparksql类比于hive可以发现,hive在mapreduce上做了一个框架,而sparksql是在spark core里的rdd里面多出来的一个框架,并且还多了dataframe这样的简便框架, dataframe最终也是转换为RDD的操作 前提:打开spark—master和spark—slave(前面有讲过,我们用的是standalone模式,由master和worker去操作driver (4)创建dataframe ? (5)查看结果 ? 可以见到dataframe可以将数据结构化,方便以后对数据的操作
DataFrame DataFrame是一种以RDD为基础的分布式数据集,类似于传统数据库中的二维表格。 传入String类型参数,得到DataFrame对象。 的前n行记录,得到一个新的DataFrame对象。 在SQL语言中用得很多的就是join操作,DataFrame中同样也提供了join的功能。 接下来隆重介绍join方法。在DataFrame中提供了六个重载的join方法。 ,关于DataFrame的创建方式一共有四种创建方式。
扫码关注腾讯云开发者
领取腾讯云代金券