我知道 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)
但没有运气..有什么建议吗?
谢谢,我感谢所有的帮助,
我有一个按年、月、日分区的 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 分钟。两次?后台究竟发生了什么?
非常感谢。
我正在使用 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
等于.999
True
mask
我认为以下方法会起作用:
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) 如何在 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) 有人可以告诉我如何使用这个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)