小编gab*_*bra的帖子

熊猫 read_csv 并只保留某些行(python)

我知道 skiprows 允许您传递包含要跳过的行索引的列表。但是,我有要保留的行的索引。

假设我的 cvs 文件在数百万行中看起来像这样:

  A B
0 1 2
1 3 4
2 5 6
3 7 8
4 9 0
Run Code Online (Sandbox Code Playgroud)

我想加载的索引列表只有 2,3,所以

index_list = [2,3]
Run Code Online (Sandbox Code Playgroud)

skiprows 函数的输入是 [0,1,4]。但是,我只有 [2,3] 可用。

我正在尝试类似的东西:

pd.read_csv(path, skiprows = ~index_list)
Run Code Online (Sandbox Code Playgroud)

但没有运气..有什么建议吗?

谢谢,我感谢所有的帮助,

python pandas

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

查询按年、月、日分区的 Athena 表

我有一个按年、月、日分区的 Athena 表,其定义如下

CREATE EXTERNAL TABLE `my_table`(
    `price` double) 
PARTITIONED BY ( 
    `year` int, 
    `month` int, 
    `day` int) 
ROW FORMAT SERDE 
    'org.apache.hadoop.hive.ql.io.parquet.serde.ParquetHiveSerDe' 
STORED AS INPUTFORMAT 
    'org.apache.hadoop.hive.ql.io.parquet.MapredParquetInputFormat' 
OUTPUTFORMAT 
    'org.apache.hadoop.hive.ql.io.parquet.MapredParquetOutputFormat'
Run Code Online (Sandbox Code Playgroud)

我需要在日期之间查询它。据我所知,选项例如是:

SELECT avg(price) 
FROM my_table 
WHERE year = 2018 AND month = 1
Run Code Online (Sandbox Code Playgroud)

结果:运行时间:4.89 秒,扫描数据:20.72MB

SELECT avg(price) 
FROM my_table 
WHERE cast(date_parse(concat(cast(year as varchar(4)),'-',
                             cast(month as varchar(2)),'-',
                             cast(day as varchar(2))
                             ), '%Y-%m-%d') as date) 
BETWEEN Date '2018-01-01' AND Date '2018-01-31'
Run Code Online (Sandbox Code Playgroud)

结果:运行时间:8.64 秒,扫描数据:20.72MB

因此,我猜 Athena 足够聪明,即使在转换串联分区列时也能使用分区功能,那么为什么它需要大约 10 分钟。两次?后台究竟发生了什么?

非常感谢。

amazon-web-services presto amazon-athena

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

Pandas - 基于布尔数据帧替换数据帧中的值

我正在使用 Pandas v0.20.2 并且有 DataFrame,如下所示:

df = pd.DataFrame(dict(a=[0,1], b=[3,4], c=[6,7]), 
              index=['spam', 'ham'])
#       a  b  c
# spam  0  3  6
# ham   1  4  7
Run Code Online (Sandbox Code Playgroud)

我有另一个 DataFrame,它是一个掩码:

mask = pd.DataFrame(dict(a=[True,False], b=[True,True]), 
                index=['spam', 'ham'])
#           a     b
# spam   True  True
# ham   False  True
Run Code Online (Sandbox Code Playgroud)

我想将值设置为df等于.999Truemask

我认为以下方法会起作用:

df[mask] = 999
Run Code Online (Sandbox Code Playgroud)

但事实并非如此。我收到以下错误:

ValueError                                Traceback (most recent call last)
<ipython-input-65-503f937859ab> in <module>()
----> 1 df[mask] = 999

/home/gbra/anaconda3/envs/outer_disk/lib/python2.7/site-packages/pandas/core/frame.pyc in __setitem__(self, key, value)
   2326             self._setitem_array(key, value)
   2327         elif …
Run Code Online (Sandbox Code Playgroud)

python python-2.7 pandas

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

numpy - 返回索引如果 3d 数组之一内的值

如何在 Numpy 中执行此操作:谢谢!

输入 :

A = np.array([0, 1, 2, 3]) 

B = np.array([[3, 2, 0], [0, 2, 1], [2, 3, 1], [3, 0, 1]]) 
Run Code Online (Sandbox Code Playgroud)

输出 :

result = [[0, 1, 3], [1, 2, 3], [0, 1, 2], [0, 2, 3]]
Run Code Online (Sandbox Code Playgroud)

在Python中:

A = np.array([0 ,1 ,2 ,3]) 
B = np.array([[3 ,2 ,0], [0 ,2 ,1], [2 ,3 ,1], [3 ,0 ,1]]) 
result = []
for x ,  valA in enumerate (A) :
    inArray = []
    for y , valB …
Run Code Online (Sandbox Code Playgroud)

python arrays indexing numpy collect

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

elasticsearch-dsl-py查询形成

有人可以告诉我如何使用这个dsl​​ python模块构建这个示例查询?

我到目前为止只有一部分查询字符串.

from elasticsearch_dsl import Search, Q, A, query, aggs
s = Search()
s.aggs.bucket('2', 'terms', field = 'Subscriber Type', size=5)
Run Code Online (Sandbox Code Playgroud)

我不确定查询的其余部分的语法是什么.任何帮助深表感谢.

所需的查询结构如下.

{
   "size": 0,
   "query": {
   "filtered": {
   "query": {
    "query_string": {
      "query": "lincoln",
      "analyze_wildcard": true
    }
  },
  "filter": {
    "bool": {
      "must": [
        {
          "range": {
            "Start date": {
              "gte": 936157359664,
              "lte": 1472701359665,
              "format": "epoch_millis"
            }
          }
        }
      ],
      "must_not": []
    }
  }
}
},
 "aggs": {
 "2": {
    "terms": {
    "field": "Subscriber Type",
    "size": 5,
    "order": …
Run Code Online (Sandbox Code Playgroud)

python elasticsearch elasticsearch-dsl

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