PySpark数据分析基础:PySpark基础功能及DataFrame操作基础语法详解

这篇具有很好参考价值的文章主要介绍了PySpark数据分析基础:PySpark基础功能及DataFrame操作基础语法详解。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

目录

前言

一、PySpark基础功能

 1.Spark SQL 和DataFrame

2.Pandas API on Spark

3.Streaming

4.MLBase/MLlib

5.Spark Core

二、PySpark依赖

Dependencies

三、DataFrame

1.创建

创建不输入schema格式的DataFrame

创建带有schema的DataFrame

从Pandas DataFrame创建

通过由元组列表组成的RDD创建

2.查看

DataFrame.show()

spark.sql.repl.eagerEval.enabled

纵向显示

 查看DataFrame格式和列名

查看统计描述信息

PySpark DataFrame转换为Pandas DataFrame

 3.查询

添加新列实例:

条件查询DataFrame.filter()

 4.运算

Pandas_udf

DataFrame.mapInPandas

5.分组

 联合分组和应用函数

 6.获取数据输入/输出

CSV

 Parquet

 ORC

 四、结合Spark SQL

点关注,防走丢,如有纰漏之处,请留言指教,非常感谢


前言

要想了解PySpark能够干什么可以去看看我之前写的文章,里面很详细介绍了Spark的生态:

Spark框架深度理解一:开发缘由及优缺点

Spark框架深度理解二:生态圈

Spark框架深度理解三:运行架构、核心数据集RDD

PySpark只是通过JVM转换使得Python代码能够在Spark集群上识别运行。故Spark的绝大多数功能都可以被Python程序使用。

上篇文章:一文速学-PySpark数据分析基础:PySpark原理详解

已经把PySpark运行原理讲的很清楚了,现在我们需要了解PySpark语法基础来逐渐编写PySpark程序实现分布式数据计算。

已搭建环境:

Spark:3.3.0

Hadoop:3.3.3

Scala:2.11.12

JDK:1.8.0_201

PySpark:3.1.2


一、PySpark基础功能

PySpark是Python中Apache Spark的接口。它不仅可以使用Python API编写Spark应用程序,还提供了PySpark shell,用于在分布式环境中交互分析数据。PySpark支持Spark的大多数功能,如Spark SQL、DataFrame、Streaming、MLlib(机器学习)和Spark Core。

pyspark rdd.map和pandas udf哪个快,一文速学-PySpark大数据分析,数据分析,python,pandas,spark,大数据

 1.Spark SQL 和DataFrame

Spark SQL是用于结构化数据处理的Spark模块。它提供了一种称为DataFrame的编程抽象,是由SchemaRDD发展而来。不同于SchemaRDD直接继承RDD,DataFrame自己实现了RDD的绝大多数功能。可以把Spark SQL DataFrame理解为一个分布式的Row对象的数据集合。

Spark SQL已经集成在spark-shell中,因此只要启动spark-shell就可以使用Spark SQL的Shell交互接口。如果在spark-shell中执行SQL语句,需要使用SQLContext对象来调用sql()方法。Spark SQL对数据的查询分成了两个分支:SQLContext和HiveContext,其中HiveContext继承了SQLContext,因此HiveContext除了拥有SQLContext的特性之外还拥有自身的特性。

Spark SQL允许开发人员直接处理RDD,同时也可查询例如在 Apache Hive上存在的外部数据。Spark SQL的一个重要特点是其能够统一处理关系表和RDD,使得开发人员可以轻松地使用SQL命令进行外部查询,同时进行更复杂的数据分析。

2.Pandas API on Spark

Spark上的pandas API可以扩展使用 python pandas库。

  • 轻松切换到pandas API和PySpark API上下文,无需任何开销。
  • 有一个既适用于pandas(测试,较小的数据集)又适用于Spark(分布式数据集)的代码库。
  • 熟练使用pandas的话很快上手

3.Streaming

Apache Spark中的Streaming功能运行在Spark之上,支持跨Streaming和历史数据的强大交互和分析应用程序,同时继承了Spark的易用性和容错特性。Spark Streaming是将流式计算分解成一系列短小的批处理作业。这里的批处理引擎是Spark Core,也就是把Spark Streaming的输入数据按照batch size(如1秒)分成一段一段的数据(Discretized Stream),每一段数据都转换成Spark中的RDD(Resilient Distributed Dataset),然后将Spark Streaming中对DStream的Transformation操作变为针对Spark中对RDD的Transformation操作,将RDD经过操作变成中间结果保存在内存中。

4.MLBase/MLlib

MLlib构建在Spark之上,是一个可扩展的机器学习库,它提供了一组统一的高级API,帮助用户创建和调整实用的机器学习管道。MLBase分为四部分:MLlib、MLI、ML Optimizer和MLRuntime。

  • ML Optimizer会选择它认为最适合的已经在内部实现好了的机器学习算法和相关参数,来处理用户输入的数据,并返回模型或别的帮助分析的结果;
  • MLI 是一个进行特征抽取和高级ML编程抽象的算法实现的API或平台;
  • MLlib是Spark实现一些常见的机器学习算法和实用程序,包括分类、回归、聚类、协同过滤、降维以及底层优化,该算法可以进行可扩充; MLRuntime 基于Spark计算框架,将Spark的分布式计算应用到机器学习领域。
     

5.Spark Core

Spark Core是Spark平台的底层通用执行引擎,所有其他功能都构建在其之上。它提供了RDD(弹性分布式数据集)和内存计算能力。

二、PySpark依赖

Dependencies

Package 最低版本限制 Note
pandas 1.0.5 支撑Spark SQL
Numpy 1.7 满足支撑MLlib基础API
pyarrow 1.0.0 支撑Spark SQL
Py4j 0.10.9.5 要求
pandas 1.0.5 pandas API on Spark需要
pyarrow 1.0.0 pandas API on Spark需要
Numpy 1.14 pandas API on Spark需要

请注意,PySpark需要Java 8或更高版本,并正确设置Java_HOME。如果使用JDK 11,请设置Dio.netty.tryReflectionSetAccessible=true 以获取与箭头相关的功能。

AArch64(ARM64)用户注意:PyArrow是PySpark SQL所必需的,但PyArrow 4.0.0中引入了对AArch64的PyArrow支持。如果由于PyArrow安装错误导致PyArrow安装在AArch64上失败,可以按如下方式安装PyArrow>=4.0.0:

pip install "pyarrow>=4.0.0" --prefer-binary

三、DataFrame

PySpark应用程序从初始化SparkSession开始,SparkSession是PySpark的入口点,如下所示。如果通过PySpark可执行文件在PySpark shell中运行它,shell会自动在变量spark中为用户创建会话。

from pyspark.sql import SparkSession
spark = SparkSession.builder.getOrCreate()

1.创建

PySpark DataFrame能够通过pyspark.sql.SparkSession.createDataFrame创建,通常通过传递列表(list)、元组(tuples)和字典(dictionaries)的列表和pyspark.sql.Rows,Pandas DataFrame,由此类列表组成的RDD转换。pyspark.sql.SparkSession.createDataFrame接收schema参数指定DataFrame的架构(优化可加速)。省略时,PySpark通过从数据中提取样本来推断相应的模式。

创建不输入schema格式的DataFrame

from datetime import datetime, date
import pandas as pd
from pyspark.sql import Row

df = spark.createDataFrame([
    Row(a=1, b=2., c='string1', d=date(2000, 1, 1), e=datetime(2000, 1, 1, 12, 0)),
    Row(a=2, b=3., c='string2', d=date(2000, 2, 1), e=datetime(2000, 1, 2, 12, 0)),
    Row(a=4, b=5., c='string3', d=date(2000, 3, 1), e=datetime(2000, 1, 3, 12, 0))
])
df
DataFrame[a: bigint, b: double, c: string, d: date, e: timestamp]

创建带有schema的DataFrame

df = spark.createDataFrame([
    (1, 2., 'string1', date(2000, 1, 1), datetime(2000, 1, 1, 12, 0)),
    (2, 3., 'string2', date(2000, 2, 1), datetime(2000, 1, 2, 12, 0)),
    (3, 4., 'string3', date(2000, 3, 1), datetime(2000, 1, 3, 12, 0))
], schema='a long, b double, c string, d date, e timestamp')
df
DataFrame[a: bigint, b: double, c: string, d: date, e: timestamp]

从Pandas DataFrame创建

pandas_df = pd.DataFrame({
    'a': [1, 2, 3],
    'b': [2., 3., 4.],
    'c': ['string1', 'string2', 'string3'],
    'd': [date(2000, 1, 1), date(2000, 2, 1), date(2000, 3, 1)],
    'e': [datetime(2000, 1, 1, 12, 0), datetime(2000, 1, 2, 12, 0), datetime(2000, 1, 3, 12, 0)]
})
df = spark.createDataFrame(pandas_df)
df
DataFrame[a: bigint, b: double, c: string, d: date, e: timestamp]

通过由元组列表组成的RDD创建

rdd = spark.sparkContext.parallelize([
    (1, 2., 'string1', date(2000, 1, 1), datetime(2000, 1, 1, 12, 0)),
    (2, 3., 'string2', date(2000, 2, 1), datetime(2000, 1, 2, 12, 0)),
    (3, 4., 'string3', date(2000, 3, 1), datetime(2000, 1, 3, 12, 0))
])
df = spark.createDataFrame(rdd, schema=['a', 'b', 'c', 'd', 'e'])
df
DataFrame[a: bigint, b: double, c: string, d: date, e: timestamp]

 以上的DataFrame格式创建的都是一样的。

df.printSchema()
root
 |-- a: long (nullable = true)
 |-- b: double (nullable = true)
 |-- c: string (nullable = true)
 |-- d: date (nullable = true)
 |-- e: timestamp (nullable = true)

2.查看

DataFrame.show()

使用格式:

df.show(<int>)
df.show(1)
+---+---+-------+----------+-------------------+
|  a|  b|      c|         d|                  e|
+---+---+-------+----------+-------------------+
|  1|2.0|string1|2000-01-01|2000-01-01 12:00:00|
+---+---+-------+----------+-------------------+
only showing top 1 row

spark.sql.repl.eagerEval.enabled

spark.sql.repl.eagerEval.enabled用于在notebooks(如Jupyter)中快速生成PySpark DataFrame的配置。控制行数可以使用spark.sql.repl.eagerEval.maxNumRows。

spark.conf.set('spark.sql.repl.eagerEval.enabled', True)
df

 pyspark rdd.map和pandas udf哪个快,一文速学-PySpark大数据分析,数据分析,python,pandas,spark,大数据

spark.conf.set('spark.sql.repl.eagerEval.maxNumRows',1)
df

 pyspark rdd.map和pandas udf哪个快,一文速学-PySpark大数据分析,数据分析,python,pandas,spark,大数据

纵向显示

行也可以垂直显示。当行太长而无法水平显示时,纵向显示就很明显。

df.show(1, vertical=True)
-RECORD 0------------------
 a   | 1
 b   | 2.0
 c   | string1
 d   | 2000-01-01
 e   | 2000-01-01 12:00:00
only showing top 1 row

 查看DataFrame格式和列名

df.columns
['a', 'b', 'c', 'd', 'e']
df.printSchema()
root
 |-- a: long (nullable = true)
 |-- b: double (nullable = true)
 |-- c: string (nullable = true)
 |-- d: date (nullable = true)
 |-- e: timestamp (nullable = true)

查看统计描述信息

df.select("a", "b", "c").describe().show()
+-------+---+---+-------+
|summary|  a|  b|      c|
+-------+---+---+-------+
|  count|  3|  3|      3|
|   mean|2.0|3.0|   null|
| stddev|1.0|1.0|   null|
|    min|  1|2.0|string1|
|    max|  3|4.0|string3|
+-------+---+---+-------+

DataFrame.collect()将分布式数据收集到驱动程序端,作为Python中的本地数据。请注意,当数据集太大而无法容纳在驱动端时,这可能会引发内存不足错误,因为它将所有数据从执行器收集到驱动端。

df.collect()
[Row(a=1, b=2.0, c='string1', d=datetime.date(2000, 1, 1), e=datetime.datetime(2000, 1, 1, 12, 0)),
 Row(a=2, b=3.0, c='string2', d=datetime.date(2000, 2, 1), e=datetime.datetime(2000, 1, 2, 12, 0)),
 Row(a=3, b=4.0, c='string3', d=datetime.date(2000, 3, 1), e=datetime.datetime(2000, 1, 3, 12, 0))]

 为了避免引发内存不足异常可以使用DataFrame.take()或者是DataFrame.tail():

df.take(1)
[Row(a=1, b=2.0, c='string1', d=datetime.date(2000, 1, 1), e=datetime.datetime(2000, 1, 1, 12, 0))]
df.tail(1)
[Row(a=3, b=4.0, c='string3', d=datetime.date(2000, 3, 1), e=datetime.datetime(2000, 1, 3, 12, 0))]

PySpark DataFrame转换为Pandas DataFrame

 PySpark DataFrame还提供了到pandas DataFrame的转换,以利用pandas API。注意,toPandas还将所有数据收集到driver端,当数据太大而无法放入driver端时,很容易导致内存不足错误。

df.toPandas()

 pyspark rdd.map和pandas udf哪个快,一文速学-PySpark大数据分析,数据分析,python,pandas,spark,大数据

 3.查询

PySpark DataFrame是惰性计算的,仅选择一列不会触发计算,但它会返回一个列实例:

df.a
Column<'a'>

大多数按列操作都返回列:

from pyspark.sql import Column
from pyspark.sql.functions import upper

type(df.c) == type(upper(df.c)) == type(df.c.isNull())
True

上述生成的Column可用于从DataFrame中选择列。例如,DataFrame.select()获取返回另一个DataFrame的列实例:

df.select(df.c).show()
+-------+
|      c|
+-------+
|string1|
|string2|
|string3|
+-------+

添加新列实例:

df.withColumn('upper_c', upper(df.c)).show()
+---+---+-------+----------+-------------------+-------+
|  a|  b|      c|         d|                  e|upper_c|
+---+---+-------+----------+-------------------+-------+
|  1|2.0|string1|2000-01-01|2000-01-01 12:00:00|STRING1|
|  2|3.0|string2|2000-02-01|2000-01-02 12:00:00|STRING2|
|  3|4.0|string3|2000-03-01|2000-01-03 12:00:00|STRING3|
+---+---+-------+----------+-------------------+-------+

条件查询DataFrame.filter()

df.filter(df.a == 1).show()
+---+---+-------+----------+-------------------+
|  a|  b|      c|         d|                  e|
+---+---+-------+----------+-------------------+
|  1|2.0|string1|2000-01-01|2000-01-01 12:00:00|
+---+---+-------+----------+-------------------+

 4.运算

Pandas_udf

PySpark支持各种UDF和API,允许用户执行Python本机函数。另请参阅最新的Pandas UDF( Pandas UDFs)和Pandas Function API( Pandas Function APIs)。例如,下面的示例允许用户在Python本机函数中直接使用pandas Series中的API。

Apache Arrow in PySpark

import pandas as pd
from pyspark.sql.functions import pandas_udf

@pandas_udf('long')
def pandas_plus_one(series: pd.Series) -> pd.Series:
    # Simply plus one by using pandas Series.
    return series + 1

df.select(pandas_plus_one(df.a)).show()
+------------------+
|pandas_plus_one(a)|
+------------------+
|                 2|
|                 3|
|                 4|
+------------------+

DataFrame.mapInPandas

DataFrame.mapInPandas允许用户在pandas DataFrame中直接使用API,而不受结果长度等任何限制。

def pandas_filter_func(iterator):
    for pandas_df in iterator:
        yield pandas_df[pandas_df.a == 1]

df.mapInPandas(pandas_filter_func, schema=df.schema).show()
+---+---+-------+----------+-------------------+
|  a|  b|      c|         d|                  e|
+---+---+-------+----------+-------------------+
|  1|2.0|string1|2000-01-01|2000-01-01 12:00:00|
+---+---+-------+----------+-------------------+

5.分组

PySpark DataFrame还提供了一种使用常见方法,即拆分-应用-合并策略来处理分组数据的方法。它根据特定条件对数据进行分组,对每个组应用一个函数,然后将它们组合回DataFrame。

df = spark.createDataFrame([
    ['red', 'banana', 1, 10], ['blue', 'banana', 2, 20], ['red', 'carrot', 3, 30],
    ['blue', 'grape', 4, 40], ['red', 'carrot', 5, 50], ['black', 'carrot', 6, 60],
    ['red', 'banana', 7, 70], ['red', 'grape', 8, 80]], schema=['color', 'fruit', 'v1', 'v2'])
df.show()
+-----+------+---+---+
|color| fruit| v1| v2|
+-----+------+---+---+
|  red|banana|  1| 10|
| blue|banana|  2| 20|
|  red|carrot|  3| 30|
| blue| grape|  4| 40|
|  red|carrot|  5| 50|
|black|carrot|  6| 60|
|  red|banana|  7| 70|
|  red| grape|  8| 80|
+-----+------+---+---+

 分组,然后将avg()函数应用于结果组。

df.groupby('color').avg().show()
+-----+-------+-------+
|color|avg(v1)|avg(v2)|
+-----+-------+-------+
|  red|    4.8|   48.0|
| blue|    3.0|   30.0|
|black|    6.0|   60.0|
+-----+-------+-------+

还可以使用pandas API对每个组应用Python自定义函数。

def plus_mean(pandas_df):
    return pandas_df.assign(v1=pandas_df.v1 - pandas_df.v1.mean())

df.groupby('color').applyInPandas(plus_mean, schema=df.schema).show()
+-----+------+---+---+
|color| fruit| v1| v2|
+-----+------+---+---+
|black|carrot|  0| 60|
| blue|banana| -1| 20|
| blue| grape|  1| 40|
|  red|banana| -3| 10|
|  red|carrot| -1| 30|
|  red|carrot|  0| 50|
|  red|banana|  2| 70|
|  red| grape|  3| 80|
+-----+------+---+---+

 联合分组和应用函数

df1 = spark.createDataFrame(
    [(20000101, 1, 1.0), (20000101, 2, 2.0), (20000102, 1, 3.0), (20000102, 2, 4.0)],
    ('time', 'id', 'v1'))

df2 = spark.createDataFrame(
    [(20000101, 1, 'x'), (20000101, 2, 'y')],
    ('time', 'id', 'v2'))

def asof_join(l, r):
    return pd.merge_asof(l, r, on='time', by='id')

df1.groupby('id').cogroup(df2.groupby('id')).applyInPandas(
    asof_join, schema='time int, id int, v1 double, v2 string').show()
+--------+---+---+---+
|    time| id| v1| v2|
+--------+---+---+---+
|20000101|  1|1.0|  x|
|20000102|  1|3.0|  x|
|20000101|  2|2.0|  y|
|20000102|  2|4.0|  y|
+--------+---+---+---+

 6.获取数据输入/输出

CSV简单易用。Parquet和ORC是高效紧凑的文件格式,读写速度更快。

PySpark中还有许多其他可用的数据源,如JDBC、text、binaryFile、Avro等。另请参阅Apache Spark文档中最新的Spark SQL、DataFrames和Datasets指南。Spark SQL, DataFrames and Datasets Guide

CSV

df.write.csv('foo.csv', header=True)
spark.read.csv('foo.csv', header=True).show()

这里记录一个报错:

java.lang.UnsatisfiedLinkError:org.apache.hadoop.io.nativeio.NativeIO$Windows.access0

 将Hadoop安装目录下的 bin 文件夹中的 hadoop.dll 和 winutils.exe 这两个文件拷贝到 C:\Windows\System32 下,问题解决。

+---+---+-------+----------+--------------------+
|  a|  b|      c|         d|                   e|
+---+---+-------+----------+--------------------+
|  1|2.0|string1|2000-01-01|2000-01-01T12:00:...|
|  2|3.0|string2|2000-02-01|2000-01-02T12:00:...|
|  3|4.0|string3|2000-03-01|2000-01-03T12:00:...|
+---+---+-------+----------+--------------------+

 Parquet

df.write.parquet('bar.parquet')
spark.read.parquet('bar.parquet').show()
+-----+------+---+---+
|color| fruit| v1| v2|
+-----+------+---+---+
|black|carrot|  6| 60|
| blue|banana|  2| 20|
| blue| grape|  4| 40|
|  red|carrot|  5| 50|
|  red|banana|  7| 70|
|  red|banana|  1| 10|
|  red|carrot|  3| 30|
|  red| grape|  8| 80|
+-----+------+---+---+

 ORC

df.write.orc('zoo.orc')
spark.read.orc('zoo.orc').show()
+-----+------+---+---+
|color| fruit| v1| v2|
+-----+------+---+---+
|  red|banana|  7| 70|
|  red| grape|  8| 80|
|black|carrot|  6| 60|
| blue|banana|  2| 20|
|  red|banana|  1| 10|
|  red|carrot|  5| 50|
|  red|carrot|  3| 30|
| blue| grape|  4| 40|
+-----+------+---+---+

 四、结合Spark SQL

DataFrame和Spark SQL共享同一个执行引擎,因此可以无缝地互换使用。例如,可以将数据帧注册为表,并按如下方式轻松运行SQL:

df.createOrReplaceTempView("tableA")
spark.sql("SELECT count(*) from tableA").show()
+--------+
|count(1)|
+--------+
|       8|
+--------+

 此外UDF也可在现成的SQL中注册和调用

@pandas_udf("integer")
def add_one(s: pd.Series) -> pd.Series:
    return s + 1

spark.udf.register("add_one", add_one)
spark.sql("SELECT add_one(v1) FROM tableA").show()

 pyspark rdd.map和pandas udf哪个快,一文速学-PySpark大数据分析,数据分析,python,pandas,spark,大数据

这些SQL表达式可以直接混合并用作PySpark列。

from pyspark.sql.functions import expr

df.selectExpr('add_one(v1)').show()
df.select(expr('count(*)') > 0).show()

pyspark rdd.map和pandas udf哪个快,一文速学-PySpark大数据分析,数据分析,python,pandas,spark,大数据


点关注,防走丢,如有纰漏之处,请留言指教,非常感谢

以上就是本期全部内容。我是fanstuck ,有问题大家随时留言讨论 ,我们下期见。文章来源地址https://www.toymoban.com/news/detail-801315.html

到了这里,关于PySpark数据分析基础:PySpark基础功能及DataFrame操作基础语法详解的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Dataframe型数据分析技巧汇总

    Kaggle 如何针对少量数据集比赛的打法。 数据降维的几种方法 HF.075 | 时间序列趋势性分析方法汇总 机器学习必须了解的7种交叉验证方法(附代码) 这个图!Python也能一键绘制了,而且样式更多.. 散点图,把散点图画出花来 综述:机器学习中的模型评价、模型选择与算法选择

    2024年02月20日
    浏览(64)
  • Python 与 PySpark数据分析实战指南:解锁数据洞见

    💂 个人网站:【 海拥】【神级代码资源网站】【办公神器】 🤟 基于Web端打造的:👉轻量化工具创作平台 💅 想寻找共同学习交流的小伙伴,请点击【全栈技术交流群】 数据分析是当今信息时代中至关重要的技能之一。Python和PySpark作为强大的工具,提供了丰富的库和功能,

    2024年02月03日
    浏览(51)
  • 《PySpark大数据分析实战》-27.数据可视化图表Pyecharts介绍

    📋 博主简介 💖 作者简介:大家好,我是wux_labs。😜 热衷于各种主流技术,热爱数据科学、机器学习、云计算、人工智能。 通过了TiDB数据库专员(PCTA)、TiDB数据库专家(PCTP)、TiDB数据库认证SQL开发专家(PCSD)认证。 通过了微软Azure开发人员、Azure数据工程师、Azure解决

    2024年01月24日
    浏览(50)
  • 《PySpark大数据分析实战》-26.数据可视化图表Seaborn介绍

    📋 博主简介 💖 作者简介:大家好,我是wux_labs。😜 热衷于各种主流技术,热爱数据科学、机器学习、云计算、人工智能。 通过了TiDB数据库专员(PCTA)、TiDB数据库专家(PCTP)、TiDB数据库认证SQL开发专家(PCSD)认证。 通过了微软Azure开发人员、Azure数据工程师、Azure解决

    2024年01月21日
    浏览(45)
  • Pandas 数据分析系列1--Series&DataFrame数据结构详解

       P andas 是一个开源的数据分析和数据处理库,是基于 NumPy 开发的。它提供了灵活且高效的数据结构,使得处理和分析结构化、缺失和时间序列数据变得更加容易。其在数据分析和数据处理领域广泛应用,在金融、社交媒体、科学研究等领域都有很高的使用率和广泛的应用

    2024年02月08日
    浏览(41)
  • pyspark学习_dataframe常用操作_01

    1. 创建DataFrame    本文使用DataFrame通过读取json文件获取数据,代码如下:       2.  DataFrame常见操作       2.1 printSchema 2.2 show  2.3 select 2.4 groupBy  2.5 filter 2.6 sort 2.7 replace 2.8 alias 2.9 withColumn 2.10 foreach

    2024年01月25日
    浏览(49)
  • PySpark实战指南:大数据处理与分析的终极指南【上进小菜猪大数据】

    上进小菜猪,沈工大软件工程专业,爱好敲代码,持续输出干货。 大数据处理与分析是当今信息时代的核心任务之一。本文将介绍如何使用PySpark(Python的Spark API)进行大数据处理和分析的实战技术。我们将探讨PySpark的基本概念、数据准备、数据处理和分析的关键步骤,并提

    2024年02月06日
    浏览(47)
  • 数据分析基础-Excel图表的美化操作(按照教程一步步操作)

    包含月份和对应的销量和产量。 时间 销量 产量 1月 60 72 2月 38 67 3月 28 34 4月 58 68 5月 67 59 6月 72 35 7月 61 42 8月 24 31 9月 55 67 10月 24 35 11月 12 21 12月 26 45 1、删除多余元素   2、弱化次要元素   对于可以弱化的元素,应尽量调整,使其不抢眼。  3、添加缺少的元素      4、调整

    2024年02月14日
    浏览(49)
  • 【数据分析 - 基础入门之NumPy④】NumPy基本操作 - 一

    大家好!我是初心,本期给大家带来的是【【NumPy系列】基本操作 - 一。 作者的【 Python 数据分析】专栏正在火热更新中,如果本文对您有帮助,欢迎大家点赞 + 评论 + 收藏 ! 每日金句分享: 选择你所喜欢的,爱你所选择的。』—— 托尔斯泰「托尔斯泰 。 NumPy( Numerical Py

    2024年02月13日
    浏览(71)
  • 【第三章 Python 机器学习入门之Series和DataFrame的创建、索引、切片、数据清洗、数据分析等】

    第一章 Python 机器学习入门之Pandas库的使用 第二章 Python 机器学习入门之NumPy库的使用 第四章 Python 机器学习入门之数据可视化 第五章 Python 机器学习入门之机器学习算法 第六章 Python 机器学习入门之实战项目 Series是一种一维数组,可以通过以下方式创建: 通过列表创建Ser

    2024年02月05日
    浏览(61)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包