小编Woo*_*per的帖子

Groupby 返回最大行的整行发生

如何获取groupby结果的整行数据?

df
   a   b   c  d   e
0  a  25  12  1  20
1  a  15   1  1   1
2  b  12   1  1   1
3  n  25   2  3   3

In [4]: df = pd.read_clipboard()

In [5]: df.groupby('a')['b'].max()
Out[5]: 
a
a    25
b    12
n    25
Name: b, dtype: int64
Run Code Online (Sandbox Code Playgroud)

如何获得整行?

a   b   c  d   e
a  25  12  1  20
b  12   1  1   1
n  25   2  3   3
Run Code Online (Sandbox Code Playgroud)

我试过过滤,但 df[df.e == df.groupby('a')['b'].max()]但大小不同:(

原始数据:

0          1 …
Run Code Online (Sandbox Code Playgroud)

python pandas

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

如何在 spark-sql 中使用“not rlike”?

rlike工作正常但not rlike抛出错误:

scala> sqlContext.sql("select * from T where columnB rlike '^[0-9]*$'").collect()
res42: Array[org.apache.spark.sql.Row] = Array([412,0], [0,25], [412,25], [0,25])

scala> sqlContext.sql("select * from T where columnB not rlike '^[0-9]*$'").collect()
java.lang.RuntimeException: [1.35] failure: ``in'' expected but `rlike' found


val df = sc.parallelize(Seq(
  (412, 0),
  (0, 25), 
  (412, 25), 
  (0, 25)
)).toDF("columnA", "columnB")
Run Code Online (Sandbox Code Playgroud)

或者它是问题https://issues.apache.org/jira/browse/SPARK-4207 的延续?

scala apache-spark apache-spark-sql

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

Apache Spark如何实现其topK()API?

在Apache Spark中有一个RDD.top()API,可以从RDD 返回前k个元素.我想知道这些操作是如何实现的.首先对RDD进行排序然后返回前k个值吗?或者它是否使用其他更有效的实现?

apache-spark

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

pandas.to_datetime开始出错

我正在尝试将pandas dataframe列转换为datetime.它完全正常工作,直到我再次卸载并安装python.我使用的是Python 2.7.10,Anaconda 2.4.0(64位).熊猫版'0.17.1'.这是我的代码:

import os, sys
from datetime import date, timedelta
import pandas as pd
import numpy as np
fdf = pd.read_csv(f,delimiter='\t')
fdf['ORDER_DATETIME']=pd.to_datetime(fdf['ORDER_DATETIME'],"%Y/%m/%d %H:%M")
Run Code Online (Sandbox Code Playgroud)

我收到以下错误消息:

文件 "... \应用程序数据\本地\连续\ Anaconda2\LIB \站点包\ spyderlib \部件\ externalshell\sitecustomize.py",71行,在EXEC的execfile(编译(scripttext,文件名, 'EXEC'),水珠,loc)

文件 ".../filename.py",线路245,在FDF [ 'ORDER_DATETIME'] = pd.to_datetime(FDF [ 'ORDER_DATETIME'], "%Y /%米/%d%H:%M")

文件"C ...\AppData\Local\Continuum\Anaconda2\lib\site-packages\pandas\util\decorators.py",第89行,包装返回函数(*args,**kwargs)

文件 "... \应用程序数据\本地\连续\ Anaconda2\LIB \站点包\大熊猫\ T系列\ tools.py",线路276,在to_datetime单位=单位,infer_datetime_format = infer_datetime_format)

文件 "... \应用程序数据\本地\连续\ Anaconda2\LIB \站点包\大熊猫\ T系列\ tools.py",线390,在_to_datetime值= _convert_listlike(arg._values,假,格式)

文件 "... \应用程序数据\本地\连续\ Anaconda2\LIB \站点包\大熊猫\ T系列\ tools.py",线路372,在_convert_listlike require_iso8601 = require_iso8601)

文件"pandas\tslib.pyx",第1847行,在pandas.tslib.array_to_datetime(pandas\tslib.c:37155)

在pandas.tslib.array_to_datetime文件"pandas\tslib.pyx",第1864行(pandas\tslib.c:33604)

Asse田

python pandas

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

KeyError:SparkConf初始化期间的SPARK_HOME

我是一个火花新手,我想从命令行运行Python脚本.我已经以交互方式测试了pyspark并且它有效.我在尝试创建sc时遇到此错误:

File "test.py", line 10, in <module>
    conf=(SparkConf().setMaster('local').setAppName('a').setSparkHome('/home/dirk/spark-1.4.1-bin-hadoop2.6/bin'))
  File "/home/dirk/spark-1.4.1-bin-hadoop2.6/python/pyspark/conf.py", line 104, in __init__
    SparkContext._ensure_initialized()
  File "/home/dirk/spark-1.4.1-bin-hadoop2.6/python/pyspark/context.py", line 229, in _ensure_initialized
    SparkContext._gateway = gateway or launch_gateway()
  File "/home/dirk/spark-1.4.1-bin-hadoop2.6/python/pyspark/java_gateway.py", line 48, in launch_gateway
    SPARK_HOME = os.environ["SPARK_HOME"]
  File "/usr/lib/python2.7/UserDict.py", line 23, in __getitem__
    raise KeyError(key)
KeyError: 'SPARK_HOME'
Run Code Online (Sandbox Code Playgroud)

python apache-spark pyspark

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

将 sbt 配置为 jenkins

我正在尝试将 sbt 插件配置为 jenkins,但在 jenkins CI 中安装sbt 插件后,它没有在配置部分显示 sbt 部分。

sbt 配置部分对我不可用。

  1. 在 Manage Jenkins 下安装 sbt 插件并重新启动 jenkins 。
  2. 然后管理Jenkins-->配置系统

我在 Windows 中运行 jenkins

scala sbt jenkins

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

按列分组以获取 Postgresql 中的数组结果

我有一张名为的表moviegenre,看起来像:

moviegenre:
- movie (FK movie.id)
- genre (FK genre.id)
Run Code Online (Sandbox Code Playgroud)

我有一个查询(ORM 生成),它返回与给定具有共同点的所有movie.imdb和。genre.idgenre.idmovie.imdb_id

SELECT "movie"."imdb_id", 
       "moviegenre"."genre_id" 
FROM   "moviegenre" 
       INNER JOIN "movie" 
               ON ( "moviegenre"."movie_id" = "movie"."id" ) 
WHERE  ( "movie"."imdb_id" IN (SELECT U0."imdb_id" 
                               FROM   "movie" U0 
                                      INNER JOIN "moviegenre" U1 
                                              ON ( U0."id" = U1."movie_id" ) 
                               WHERE  ( U0."last_ingested_on" IS NOT NULL 
                                        AND NOT ( U0."imdb_id" IN 
                                                  ( 'tt0169547' ) ) 
                                        AND NOT ( U0."imdb_id" IN 
                                                  ( 'tt0169547' ) ) 
                                        AND U1."genre_id" IN ( …
Run Code Online (Sandbox Code Playgroud)

python sql postgresql

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

在条件下更新pandas数据帧的值

我正在尝试按逻辑条件更新pandas数据帧但是,它失败并出现以下错误,

df[df.b <= 0]['b'] = 0
Run Code Online (Sandbox Code Playgroud)

A value is trying to be set on a copy of a slice from a DataFrame. Try using .loc[row_indexer,col_indexer] = value instead

我该如何工作?

数据:

df = pd.DataFrame({'a': np.random.randn(4), 'b': np.random.randn(4)})
    a           b
0   1.462028    -1.337630
1   0.206193    -1.060710
2   -0.464847   -1.881426
3   0.290627    0.650805
Run Code Online (Sandbox Code Playgroud)

我正在学习熊猫.在R中,语法如下,

df[df$b <= 0]$b <- 0
Run Code Online (Sandbox Code Playgroud)

python pandas

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

检查字符串是否可转换为整数

我想检查 lambda 表达式中的字符串是否可以转换为整数。

import re,time
rdd = sc.textFile("file:///home/vdpqa/sample.gz")
new1 = rdd.map(lambda x: re.split('/|\.|\|',x))
    .filter(lambda arr: (len(arr) > 9) and isinstance(arr[7],int)).map(lambda x: x[:9])

new = new1.map(lambda x: [x[0],x[1],x[3],
        time.strftime('%Y%m%d', time.localtime(int(x[7])/1000000)),x[8]])
Run Code Online (Sandbox Code Playgroud)

我检查了这个问题,但没有帮助:

>>> isinstance(1448379000595770,int)
True
>>> isinstance('1448379000595770',int)
False
Run Code Online (Sandbox Code Playgroud)

python

0
推荐指数
1
解决办法
1096
查看次数