小编Dav*_*vid的帖子

用fancyimpute和pandas进行数据估算

我有一个大熊猫数据成名df.它有很多缺失.丢弃行/或逐行不是一种选择.输入中位数,平均值或最常见的值也不是一种选择(因此,插入pandas和/或scikit不幸的是没有做到这一点).

我遇到了一个看起来很整洁的包fancyimpute(你可以在这里找到它).但我有一些问题.

这是我做的:

#the neccesary imports
import pandas as pd
import numpy as np
from fancyimpute import KNN

# df is my data frame with the missings. I keep only floats
df_numeric = = df.select_dtypes(include=[np.float])

# I now run fancyimpute KNN, 
# it returns a np.array which I store as a pandas dataframe
df_filled = pd.DataFrame(KNN(3).complete(df_numeric))
Run Code Online (Sandbox Code Playgroud)

但是,它df_filled是一个单一的向量,而不是填充的数据帧.如何通过插补来保持数据框?

更新

我意识到,fancyimpute需要一个numpay array.我因此使用转换为df_numeric数组as_matrix(). …

python python-3.x pandas imputation fancyimpute

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

在Spark中计算RDD昂贵任务中的记录?

在Hadoop中,当我使用inputformat reader时,作业级别的日志会报告读取的记录数,还会显示字节数等.

在Spark中,当我使用相同的inputformat阅读器时,我得到的不是那些指标.

所以我想我会使用inputformat reader来填充rdd,然后只发布rdd中的记录数(rdd的大小).

我知道rdd.count()返回rdd的大小.

但是,使用成本count()对我来说并不清楚?例如:

  • 它是分布式功能吗?每个分区是否会报告其计数并将计数汇总并报告?或整个rdd被带入司机并计算?
  • 在执行count()遗嘱后,rdd仍然保留在内存中,还是我必须显式缓存它?
  • 有没有更好的方法来做我想做的事情,即在对它们进行操作之前对记录进行计数?

java hadoop apache-spark

9
推荐指数
1
解决办法
3239
查看次数

python中的ValueError和TypeError

我无法完全理解Python3x中Type和Value错误之间的区别.

当我尝试使用float('string')而不是TypeError时,为什么会得到ValueError?不应该给出一个TypeError因为我传递一个'str'类型的变量要转换成float?

In [169]: float('string')
---------------------------------------------------------------------------
ValueError                                Traceback (most recent call last)
<ipython-input-169-f894e176bff2> in <module>()
----> 1 float('string')

ValueError: could not convert string to float: 'string'
Run Code Online (Sandbox Code Playgroud)

python typeerror valueerror

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

pyspark:并行化和收集顺序保留

对于 python 中的 Spark,sc.parallelize()collect()操作是否保持顺序?例如,如果我有一个元素列表x,将返回与?sc.parallelize(x).collect()完全相同的顺序的元素列表。x

apache-spark pyspark

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

Pandas read_excel()包含多个工作表和特定列

我正在尝试使用pandas.read_excel()从电子表格导入多个工作表.如果我没有使用parse_cols关键字指定列,我可以从工作表中获取所有数据,但我似乎无法弄清楚如何为每个工作表指定特定的列.

import pandas as pd

workSheets = ['sheet1', 'sheet2', 'sheet3','sheet4']
cols = ['A,E','A,E','A,C','A,E']

df = pd.read_excel(excelFile, sheetname=workSheets, parse_cols='A:E')  #This works fine
df = pd.read_excel(excelFile, sheetname=workSheets, parse_cols=cols) #This returns empty dataFrames
Run Code Online (Sandbox Code Playgroud)

有没有人知道是否有一种方法,使用read_excel(),从excel导入多个工作表,还根据哪个工作表指定特定的列?

谢谢.

python pandas

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

dataframe.show()是spark中的一个动作吗?

我有以下代码:

val df_in = sqlcontext.read.json(jsonFile) // the file resides in hdfs

//some operations in here to create df as df_in with two more columns "terms1" and "terms2" 

val intersectUDF = udf( (seq1:Seq[String], seq2:Seq[String] ) => {     seq1 intersect seq2 } ) //intersects two sequences
val symmDiffUDF = udf( (seq1:Seq[String], seq2:Seq[String] ) => { (seq1 diff seq2) ++ (seq2 diff seq1) } ) //compute the difference of two sequences

val df1 = (df.withColumn("termsInt", intersectUDF(df("terms1"), df1("terms2") ) )
             .withColumn("termsDiff", symmDiffUDF(df("terms1"),     df1("terms2") ) …
Run Code Online (Sandbox Code Playgroud)

apache-spark

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

如何删除 Spark 上的 Parquet 文件?

我已使用命令在 Spark 上保存了 parquet 文件DataFrame.saveAsParquet()

如何通过 python 代码删除/删除该文件?

python apache-spark parquet

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

如何为每行 rdd 生成哈希?(PYSPARK)

正如问题中所指定的,我正在尝试为 RDD 的每一行生成一个哈希值。出于我的目的,我不能使用zipWithUniqueId()方法,对于 RDD 的每一行,我需要所有列的一个哈希值。

for row in DataFrame.collect():
    return hashlib.sha1(str(row))
Run Code Online (Sandbox Code Playgroud)

我知道这是最糟糕的方式,迭代到 rdd,但我是 pyspark 的初学者。然而问题是:我为每一行获得相同的哈希值。我尝试使用强抗碰撞散列函数,但它太慢了。有没有办法解决这个问题?提前致谢 :)

hash row rdd pyspark

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

toLocalIterator 是如何工作的?

我试图了解如何toLocalIterator工作,我读了一些帖子和博客,但是我不确定一件事。

它是否一次将所有分区复制到驱动程序节点并创建迭代器?或者它一次复制一个分区的数据,然后创建一个迭代器?

hadoop apache-spark hadoop2 pyspark

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

Pysolr过滤搜索

我正在使用pysolr-2.0.15 api进行SOLR搜索

mysite:8983/solr/select/?q=disease&fq=url:"pediatric"&version=2.2&start=0&rows=10&indent=on
Run Code Online (Sandbox Code Playgroud)

这个SOLR查询给了我成功的结果

我想用pysolr搜索功能来实现它

我正在尝试这个

results = conn.search('disease "url:Pediatric"')
Run Code Online (Sandbox Code Playgroud)

但结果不正确.

另一个问题是搜索方法只返回10条记录我怎样才能获得所有搜索结果.

谁能帮我吗?

solr pysolr

3
推荐指数
1
解决办法
5110
查看次数