小编Geo*_*eRF的帖子

怎么办"(df1&not df2)"数据框合并在熊猫?

我有2个pandas数据帧df1和df2与公共列/键(x,y).

我想在键(x,y)上合并做一个"(df1¬ df2)"类型的合并,这意味着我希望我的代码只在df1而不是在df2中返回包含(x,y)行的数据帧.

SAS具有同等功能

data final;
merge df1(in=a) df2(in=b);
by x y;
if a & not b;
run;
Run Code Online (Sandbox Code Playgroud)

谁优雅地在熊猫中复制相同的功能?如果我们可以在merge()中指定how"= left-right",那将会很棒.

python merge join dataframe pandas

8
推荐指数
1
解决办法
7364
查看次数

如何在pandas数据帧中找到列的ngram频率?

下面是我输入的pandas数据帧.

在此输入图像描述

我想找到unigrams和bigrams的频率.我期待的样本如下所示在此输入图像描述

如何使用nltk或scikit学习?

我写了下面的代码,它以字符串作为输入.如何将其扩展到系列/数据框?

from nltk.collocations import *
desc='john is a guy person you him guy person you him'
tokens = nltk.word_tokenize(desc)
bigram_measures = nltk.collocations.BigramAssocMeasures()
finder = BigramCollocationFinder.from_words(tokens)
finder.ngram_fd.viewitems()
Run Code Online (Sandbox Code Playgroud)

nlp text-mining nltk pandas scikit-learn

7
推荐指数
1
解决办法
6730
查看次数

如何在散景python中捕获下拉窗口小部件的值?

链接中的散景0.12.1的官方文档提供了以下用于创建下拉列表的代码.

http://bokeh.pydata.org/en/latest/docs/user_guide/interaction/widgets.html#userguide-interaction-widgets

但是,当有人点击并从下拉列表中选择一个值时,它没有明确提到如何捕获下拉窗口小部件的值.

from bokeh.io import output_file, show
from bokeh.layouts import widgetbox
from bokeh.models.widgets import Dropdown

output_file("dropdown.html")

menu = [("Item 1", "item_1"), ("Item 2", "item_2"), None, ("Item 3", "item_3")]
dropdown = Dropdown(label="Dropdown button", button_type="warning", menu=menu)

show(widgetbox(dropdown))
Run Code Online (Sandbox Code Playgroud)

是看到有2个方法叫做on_click()&on_change()但是从文档中无法弄清楚如何捕获值.我们如何将选定的值分配给新变量?

编辑

根据@Ascurion的输入,我更新了我的代码,如下所示.但是当我在下拉列表中选择一个值时,Spyder的ipython控制台中不会打印任何内容.请指教.

    from bokeh.io import output_file, show
    from bokeh.layouts import widgetbox
    from bokeh.models.widgets import Dropdown

    output_file("dropdown.html")


    menu = [("Item 1", "item_1"), ("Item 2", "item_2"), None, ("Item 3", "item_3")]
    dropdown = Dropdown(label="Dropdown button", button_type="warning", menu=menu)

    def function_to_call(attr, old, new):
        print dropdown.value

    dropdown.on_change('value', function_to_call) …
Run Code Online (Sandbox Code Playgroud)

python plot data-visualization widget bokeh

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

如何用新列覆盖Spark数据帧中的整个现有列?

我想用一个新的列覆盖一个spark列,这是一个二进制标志.

我尝试直接覆盖列id2,但为什么它不像Pandas中的inplace操作那样工作?

如何在不使用withcolumn()创建新列和drop()来删除旧列的情况下执行此操作?

我知道spark数据帧是不可变的,这是因为没有使用withcolumn()&drop()而有不同的覆盖方式?

    df2 = spark.createDataFrame(
        [(1, 1, float('nan')), (1, 2, float(5)), (1, 3, float('nan')), (1, 4, float('nan')), (1, 5, float(10)), (1, 6, float('nan')), (1, 6, float('nan'))],
        ('session', "timestamp1", "id2"))

    df2.select(df2.id2 > 0).show()

+---------+
|(id2 > 0)|
+---------+
|     true|
|     true|
|     true|
|     true|
|     true|
|     true|
|     true|
+---------+
 # Attempting to overwriting df2.id2
    df2.id2=df2.select(df2.id2 > 0).withColumnRenamed('(id2 > 0)','id2')
    df2.show()
#Overwriting unsucessful
+-------+----------+----+
|session|timestamp1| id2|
+-------+----------+----+
|      1|         1| NaN|
|      1|         2| 5.0|
| …
Run Code Online (Sandbox Code Playgroud)

dataframe apache-spark apache-spark-sql pyspark apache-spark-mllib

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

如何使用Window()计算PySpark中的滚动中位数?

如何计算前3个窗口大小的美元滚动中位数?

输入数据

dollars timestampGMT       
25      2017-03-18 11:27:18
17      2017-03-18 11:27:19
13      2017-03-18 11:27:20
27      2017-03-18 11:27:21
13      2017-03-18 11:27:22
43      2017-03-18 11:27:23
12      2017-03-18 11:27:24
Run Code Online (Sandbox Code Playgroud)

预期的输出数据

dollars timestampGMT          rolling_median_dollar
25      2017-03-18 11:27:18   median(25)
17      2017-03-18 11:27:19   median(17,25)
13      2017-03-18 11:27:20   median(13,17,25)
27      2017-03-18 11:27:21   median(27,13,17)
13      2017-03-18 11:27:22   median(13,27,13)
43      2017-03-18 11:27:23   median(43,13,27)
12      2017-03-18 11:27:24   median(12,43,13)
Run Code Online (Sandbox Code Playgroud)

下面的代码确实移动avg但PySpark没有F.median().

pyspark:使用时间序列数据滚动平均值

编辑1:挑战是中位数()函数不退出.我不能做

df = df.withColumn('rolling_average', F.median("dollars").over(w))
Run Code Online (Sandbox Code Playgroud)

如果我想要移动平均线我就可以做到

df = df.withColumn('rolling_average', F.avg("dollars").over(w))
Run Code Online (Sandbox Code Playgroud)

编辑2:尝试使用approxQuantile()

windfun = Window().partitionBy().orderBy(F.col(date_column)).rowsBetwe??en(-3, 0) sdf.withColumn("movingMedian", sdf.approxQuantile(col='a', probabilities=[0.5], relativeError=0.00001).over(windfun)) 
Run Code Online (Sandbox Code Playgroud)

但是得到错误

AttributeError: …
Run Code Online (Sandbox Code Playgroud)

apache-spark apache-spark-sql pyspark pyspark-sql

6
推荐指数
1
解决办法
2410
查看次数

如何从本地驱动器上传大数据并将其保存到Google Colaboratory?

我从这个Kaggle链接下载了大图像训练数据作为zip

https://www.kaggle.com/c/yelp-restaurant-photo-classification/data

我如何有效地实现以下目标?

  1. 在Google Colaboratory中创建一个项目文件夹
  2. 将zip文件上传到项目文件夹
  3. 解压缩文件

谢谢

编辑:我尝试了下面的代码,但它崩溃了我的大型zip文件.有没有更好/更有效的方法来执行此操作,我可以在本地驱动器中指定文件的位置?

from google.colab import files
uploaded = files.upload()

for fn in uploaded.keys():
  print('User uploaded file "{name}" with length {length} bytes'.format(
      name=fn, length=len(uploaded[fn])))
Run Code Online (Sandbox Code Playgroud)

python google-drive-api deep-learning jupyter-notebook google-colaboratory

6
推荐指数
1
解决办法
6794
查看次数

如何在 Pyspark 中按列连接/附加多个 Spark 数据帧?

如何使用 Pyspark 数据框做相当于 pd.concat([df1,df2],axis='columns') 的 Pandas?我用谷歌搜索并找不到一个好的解决方案。

DF1
var1        
     3      
     4      
     5      

DF2
var2    var3     
  23      31
  44      45
  52      53

Expected output dataframe
var1        var2    var3
     3        23      31
     4        44      45
     5        52      53
Run Code Online (Sandbox Code Playgroud)

编辑以包括预期的输出

python apache-spark apache-spark-sql pyspark pyspark-sql

5
推荐指数
3
解决办法
2万
查看次数

为什么PySpark中的agg()一次只能汇总一列?

对于以下数据帧

df=spark.createDataFrame(data=[('Alice',4.300),('Bob',7.677)],schema=['name','High'])
Run Code Online (Sandbox Code Playgroud)

当我试图找到最小值和最大值时,我只输出最小值.

df.agg({'High':'max','High':'min'}).show()
Run Code Online (Sandbox Code Playgroud)
+-----------+
|min(High)  |
+-----------+
|    2094900|
+-----------+
Run Code Online (Sandbox Code Playgroud)

为什么agg()不能像熊猫一样给出最大和最小?

python apache-spark apache-spark-sql pyspark pyspark-sql

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

如何使用 Anaconda 安装 Visual Studio Code IDE?

我有一台 Ubuntu 机器。如何安装 Visual Studio Code IDE?

这是公告,但无法弄清楚如何在 Ubuntu 中安装。

https://blogs.msdn.microsoft.com/pythonengineering/2018/02/15/visual-studio-code-is-now-shipping-with-anaconda/

我可以安装 conda 吗?

python ubuntu anaconda visual-studio-code

5
推荐指数
0
解决办法
2万
查看次数

如何从 Spacy NER 模型中获得每个实体的预测概率?

我使用这个官方示例代码使用我自己的训练样本从头开始训练一个 NER 模型。

当我在新文本上使用此模型进行预测时,我想获得每个实体的预测概率。

    # test the saved model
    print("Loading from", output_dir)
    nlp2 = spacy.load(output_dir)
    for text, _ in TRAIN_DATA:
        doc = nlp2(text)
        print("Entities", [(ent.text, ent.label_) for ent in doc.ents])
        print("Tokens", [(t.text, t.ent_type_, t.ent_iob) for t in doc])
Run Code Online (Sandbox Code Playgroud)

我无法在 Spacy 中找到一种方法来获得每个实体的预测概率。

我如何从 Spacy 获得这个概率?我需要它来应用截止。

python nlp deep-learning spacy ner

5
推荐指数
1
解决办法
2289
查看次数