小编Eda*_*ame的帖子

pyspark/dataframe:用空白替换 null

我在 pyspark 数据框中有以下 udf 函数。代码工作正常,除非myFun1('oldColumn')为空,我希望输出为空字符串而不是空。

myFun1 = udf(lambda x: myModule.myFunction1(x), StringType())
myDF = myDF.withColumn('newColumn', myFun1('oldColumn'))
Run Code Online (Sandbox Code Playgroud)

是否可以就地执行此操作而不是创建另一个 udf 函数?谢谢!

python lambda dataframe

4
推荐指数
1
解决办法
8918
查看次数

sql/spark-sql: 查询中的 if 语句语法

我正在研究一些现有的 spark-sql 代码,它们尝试将两个表连接到如下表:

items_t1_t2 as (
    select *,
    if(id_t1 is not Null, True, False) as in_t1,
    if(id_t2 is not Null, True, False) as in_t2
    from item_t2 full join item_t1
    on id_t2 = id_t1)
Run Code Online (Sandbox Code Playgroud)

我想知道为什么 if 括号中有三个元素?if 语句在这里是什么意思以及它在这里是如何工作的?非常感谢!

sql join apache-spark-sql

4
推荐指数
1
解决办法
1万
查看次数

Python:使用给定列为x轴绘制pandas数据框的条形图

我想为Jupyter Notebook上的以下pandas数据框绘制条形图.

      | Month | number
-------------------------
    0 | Apr   |  6.5
    1 | May   |  7.3
    2 | Jun   |  3.9
    3 | Jul   |  5.1
    4 | Aug   |  4.1
Run Code Online (Sandbox Code Playgroud)

我做了:

%matplotlib notebook
import matplotlib.pyplot as plt
import matplotlib
matplotlib.style.use('ggplot')
trend_df.plot(kind='bar')
Run Code Online (Sandbox Code Playgroud)

如何确保x轴实际显示月份?

python pandas python-ggplot jupyter-notebook

4
推荐指数
1
解决办法
7188
查看次数

再向架构中添加一个StructField

我的PySpark数据框具有以下架构:

schema = spark_df.printSchema()
Run Code Online (Sandbox Code Playgroud)
root
 |-- field_1: double (nullable = true)
 |-- field_2: double (nullable = true)
 |-- field_3 (nullable = true)
 |-- field_4: double (nullable = true)
 |-- field_5: double (nullable = true)
 |-- field_6: double (nullable = true)
Run Code Online (Sandbox Code Playgroud)

我想再向架构中添加一个StructField,因此新架构看起来像:

root
 |-- field_1: double (nullable = true)
 |-- field_1: double (nullable = true)
 |-- field_2: double (nullable = true)
 |-- field_3 (nullable = true)
 |-- field_4: double (nullable = true)
 |-- field_5: double (nullable = true)
 |-- field_6: double …
Run Code Online (Sandbox Code Playgroud)

python apache-spark apache-spark-sql pyspark

4
推荐指数
1
解决办法
2843
查看次数

python - matplotlib:figsize for subplots - 在行之间添加空格

我使用以下代码制作图:

   fig, axes = plt.subplots(len(pairs), 3, figsize=(12, 324))
    for i, pair in enumerate(pairs):
        d = pd.DataFrame(columns=[pairs[0], pairs[1]])
        e = df_norm[list(pair)]
        ax0 = axes[i,0]
        ax1 = axes[i,1]
        ax2 = axes[i,2]

        d[pair[0]] = np.random.normal(e[pair[0]],0.02)
        d[pair[1]] = np.random.normal(e[pair[1]],0.02)

    d.plot.scatter(*pair, ax=ax0, c=col0, linewidths=0, s=2, alpha = 0.7)
    d.plot.scatter(*pair, ax=ax1, c=col1, linewidths=0, s=2, alpha = 0.7)
    d.plot.scatter(*pair, ax=ax2, c=col2, linewidths=0, s=2, alpha = 0.7)

fig.tight_layout()
Run Code Online (Sandbox Code Playgroud)

但是,我的输出图都搞砸了:

在此输入图像描述

我尝试figsize=(12, 324)通过使324更大或更小来改变,但都没有帮助.有没有办法我可以在每一行之间放置一些空格,这样数字就不会搞砸了.谢谢!

python matplotlib

4
推荐指数
2
解决办法
3811
查看次数

Python Jupyter Notebook:将两个直方图子图并排放置在一个图中

我正在使用Python(3.4)Jupyter Notebook。我在两个单独的单元格中具有以下两个直方图,每个直方图都有自己的图形:

bins = np.linspace(0, 1, 40)
plt.hist(list1, bins, alpha = 0.5, color = 'r')
Run Code Online (Sandbox Code Playgroud)

bins = np.linspace(0, 1, 40)
plt.hist(list2, bins, alpha = 0.5, color = 'g')
Run Code Online (Sandbox Code Playgroud)

是否可以将上述两个直方图作为两个子图并排放置在一个图中?

python matplotlib histogram python-3.x

4
推荐指数
2
解决办法
9787
查看次数

python matplotlib:直方图中的标签

我正在使用Python(3.4)Jupyter Notebook.我尝试使用下面的代码绘制带有标签的直方图.

   %matplotlib notebook
    import matplotlib.pyplot as plt
    import matplotlib
    import numpy as np

    bins = np.linspace(0, 1.0, 40)

    plt.hist(good_tests, bins, alpha = 0.5, color = 'b' , label = 'good')
    plt.show()
Run Code Online (Sandbox Code Playgroud)

但标签"好"根本没有表现出来.我错过了什么吗?谢谢!

python matplotlib histogram

4
推荐指数
1
解决办法
2万
查看次数

pandas:AttributeError:“函数”对象没有属性“包含”

我有以下代码来检查某些列的值是否包含给定的字符串:

my_df[my_df.name.str.contains('Mike')]
Run Code Online (Sandbox Code Playgroud)

但是,当我尝试使其适用于所有字母大小写时,例如:

my_df[my_df.name.str.lower.contains('mike')]
Run Code Online (Sandbox Code Playgroud)

我收到以下错误:

AttributeError: 'function' object has no attribute 'contains'
Run Code Online (Sandbox Code Playgroud)

调用 lower() 函数的正确方法应该是什么,以便我可以确保匹配不区分大小写?谢谢!

lowercase dataframe python-3.x pandas

4
推荐指数
1
解决办法
6437
查看次数

pandas: qcut error: ValueError: Bin edges must be unique:

I am trying to compute percentile of two columns using the pandas qcut method like below:

my_df['float_col_quantile'] = pd.qcut(my_df['float_col'], 100, labels=False)
my_df['int_col_quantile'] = pd.qcut(my_df['int_col'].astype(float), 100, labels=False)
Run Code Online (Sandbox Code Playgroud)

The column float_col_quantile works fine, but the column int_col_quantile has the following error. Any idea what I did wrong here? And how can I fix this problem? Thanks!


ValueError                                Traceback (most recent call last)
<ipython-input-19-b955e0b00953> in <module>()
      1 my_df['float_col_quantile'] = pd.qcut(my_df['float_col'], 100, labels=False)
----> 2 my_df['int_col_quantile'] = pd.qcut(my_df['int_col'].astype(float), 100, labels=False)


/usr/local/lib/python3.4/dist-packages/pandas/tools/tile.py in qcut(x, q, …
Run Code Online (Sandbox Code Playgroud)

quantile dataframe python-3.x pandas

4
推荐指数
1
解决办法
2万
查看次数

标准化熊猫数据框但跳过几列

我正在使用以下代码来规范化数字熊猫数据框。

df_norm = (input_df - input_df.mean()) / (input_df.max() - input_df.min())
Run Code Online (Sandbox Code Playgroud)

现在我有了一个新的数据框,前两列是字符串。我想忽略前两列并对数据框的其余部分执行规范化。有没有办法通过小的修改来重用上面的代码?谢谢!

python-3.x pandas

4
推荐指数
1
解决办法
986
查看次数