我正在查看来自Kaggle比赛的着名泰坦尼克号数据集:http://www.kaggle.com/c/titanic-gettingStarted/data
我使用以下方法加载和处理数据:
# import required libraries
import pandas as pd
import matplotlib.pyplot as plt
%matplotlib inline
# load the data from the file
df = pd.read_csv('./data/train.csv')
# import the scatter_matrix functionality
from pandas.tools.plotting import scatter_matrix
# define colors list, to be used to plot survived either red (=0) or green (=1)
colors=['red','green']
# make a scatter plot
scatter_matrix(df,figsize=[20,20],marker='x',c=df.Survived.apply(lambda x:colors[x]))
df.info()
Run Code Online (Sandbox Code Playgroud)

如何在情节中添加像Sex and Embarked这样的分类栏?
我喜欢 VS 代码中连接到远程 jupter 笔记本服务器的新功能。它允许我在 docker 容器中运行 jupyter 并编写代码......
然而,在绘制熊猫表等时,文本输出并不总是最佳的,对于快速迭代来说,最好有例如。散景互动图可用。
所以我在想以下 - 是否可以启动一个 jupyter notebook,然后将 VS Code 连接到相应的内核。基本上,您还可以为正在运行的笔记本连接现有内核的方式。
我现在可以这样做的方式:
%connect_infojupyter console --existing my_kernel.json现在我的浏览器中有我的笔记本,我的控制台连接到同一个内核。所以我的浏览器中可用的任何变量也可以在我的控制台中使用(反之亦然)。
是否可以在 VSCode 中执行第 5 步之类的操作...
我提取数据仓库中的数据,将其存储在Parquet文件中,然后将所有Parquet文件加载到spark数据框中。到目前为止,一切都很好。但是,当我尝试使用pandas.plot()函数对其进行绘制时,会抛出“ TypeError:空'DataFrame':没有要绘制的数字数据”
因此,我开始向后调查源代码,我认为从初始sql语句转换为十进制是问题之一。但是我不知道如何解决这个问题。我以为fillna(0)可以解决问题,但事实并非如此。
步骤1:定义SQL语句以提取数据
mpr_sql = """
select
CAST(DATE_KEY AS INTEGER) AS DATE_KEY ,
CAST(AMD AS INTEGER) AS AMD ,
CAST(AMD_2 AS DECIMAL(12,2)) AS AMD_2 ,
CAST(AMD_3 AS DECIMAL(12,2)) AS AMD_3 ,
CAST(AMD_4 AS DECIMAL(12,2)) AS AMD_4 ,
CAST(AMD_0 AS DECIMAL(12,2)) AS AMD_0
"""
Run Code Online (Sandbox Code Playgroud)
步骤2:根据提取的数据创建一个Spark数据框
df1 = sqlContext.load(source="jdbc",
driver="com.teradata.jdbc.TeraDriver",
url=db_url,
user=db_user
TMODE="TERA",
password=db_pwd,
dbtable="( "+sql+") a")
Run Code Online (Sandbox Code Playgroud)
步骤3:将spark数据帧存储在具有10个分区的镶木地板文件中
df1.coalesce(10).write.parquet("./mpr"+month+"sorted.parquet")
df = sqlContext.read.parquet('./mpr*sorted.parquet')
Run Code Online (Sandbox Code Playgroud)
步骤4:查看spark数据框架构(显示十进制(12,2))
df.printSchema()
root
|-- DATE_KEY: integer (nullable = true)
|-- AMD: integer (nullable = true)
|-- AMD_2: decimal(12,2) (nullable …Run Code Online (Sandbox Code Playgroud)