我正在aggregation result exceeds maximum document size (16MB)使用pymongo进行mongodb聚合的错误.
我首先使用该limit()选项克服了它.但是,在某些时候我得到了
Exceeded memory limit for $group, but didn't allow external sort. Pass allowDiskUse:true to opt in." error.
Run Code Online (Sandbox Code Playgroud)
好的,我会用这个{'allowDiskUse':True}选项.当我在命令行上使用它时,此选项有效,但是当我尝试在我的python代码中使用它时
result = work1.aggregate(pipe, 'allowDiskUse:true')
Run Code Online (Sandbox Code Playgroud)
我收到TypeError: aggregate() takes exactly 2 arguments (3 given)错误.(尽管在http://api.mongodb.org/python/current/api/pymongo/collection.html#pymongo.collection.Collection.aggregate:aggregate(pipeline,** kwargs)中给出了定义.
我尝试使用runCommand,或者说它的pymongo等价:
db.command('aggregate','work1',pipe, {'allowDiskUse':True})
Run Code Online (Sandbox Code Playgroud)
但现在我回到'聚合结果超过最大文档大小(16MB)'错误
如果你需要知道
pipe = [{'$project': {'_id': 0, 'summary.trigrams': 1}}, {'$unwind': '$summary'}, {'$unwind': '$summary.trigrams'}, {'$group': {'count': {'$sum': 1}, '_id': '$summary.trigrams'}}, {'$sort': {'count': -1}}, {'$limit': 10000}]
Run Code Online (Sandbox Code Playgroud)
谢谢
我正在执行批量写入
bulk = new_packets.initialize_ordered_bulk_op()
bulk.insert(packet)
output = bulk.execute()
并得到一个错误,我解释为意味着数据包不是一个字典.但是,我知道这是一个字典.可能是什么问题呢?
这是错误:
BulkWriteError Traceback (most recent call last)
<ipython-input-311-93f16dce5714> in <module>()
2
3 bulk.insert(packet)
----> 4 output = bulk.execute()
C:\Users\e306654\AppData\Local\Continuum\Anaconda\lib\site-packages\pymongo\bulk.pyc in execute(self, write_concern)
583 if write_concern and not isinstance(write_concern, dict):
584 raise TypeError('write_concern must be an instance of dict')
--> 585 return self.__bulk.execute(write_concern)
C:\Users\e306654\AppData\Local\Continuum\Anaconda\lib\site-packages\pymongo\bulk.pyc in execute(self, write_concern)
429 self.execute_no_results(generator)
430 elif client.max_wire_version > 1:
--> 431 return self.execute_command(generator, write_concern)
432 else:
433 return self.execute_legacy(generator, write_concern)
C:\Users\e306654\AppData\Local\Continuum\Anaconda\lib\site-packages\pymongo\bulk.pyc in execute_command(self, generator, write_concern)
296 full_result['writeErrors'].sort( …Run Code Online (Sandbox Code Playgroud) 我正在探索statsmodels.imputation.mice包用于输入缺失值.但是,除了http://www.statsmodels.org之外,我还没有看到它的任何使用示例.从我收集的内容中,可以创建一个mouse.MICEData实例并将其与mice.MICE().fit()结合使用.来自http://www.statsmodels.org/dev/generated/statsmodels.imputation.mice.MICE.html的示例
>>> imp = mice.MICEData(data)
>>> fml = 'y ~ x1 + x2 + x3 + x4'
>>> mice = mice.MICE(fml, sm.OLS, imp)
>>> results = mice.fit(10, 10)
>>> print(results.summary())
Run Code Online (Sandbox Code Playgroud)
但是,MiceData实例中的估算值并不固定.我的意思是,如果
imp = mice.MICEData(data)
Run Code Online (Sandbox Code Playgroud)
每次通话
imp.update('x1')
Run Code Online (Sandbox Code Playgroud)
(假设数据有一列'x1')使用"预测均值匹配"为缺失值绘制一个新样本.如果我将MICEDdata与MICE.fit()一起使用,这一切都很好.但是,假设我想使用此程序包将值重写一次,然后使用另一个程序包中的预测程序(例如来自sklearn)来拟合数据.我想知道,什么是合理的方法.我可以多次运行更新并对每个缺失值进行平均预测.或者,我可以创建具有不同插补值的多个数据集并适合每个集合.但是,如果我的数据集很大,那么它可能会非常昂贵.
我一直在考虑单词序列的 0-padding 以及如何将 0-padding 转换为 Embedding 层。乍一看,人们会认为您还想保持 embeddings = 0.0。但是,Embeddinglayer in 会keras为任何输入标记生成随机值,并且无法强制它生成 0.0。注意,mask_zero做一些不同的事情,我已经检查过了。
有人可能会问,为什么要担心这一点,即使嵌入不是 0.0,只要它们相同,代码似乎也能工作。所以我想出了一个例子,尽管有点做作,其中将 0 填充标记的嵌入设置为 0.0 会有所不同。
我使用了 20 News Groups 数据集from sklearn.datasets import fetch_20newsgroups。我做了一些最小的预处理:删除标点符号、停用词和数字。我from keras.preprocessing.sequence import pad_sequences用于 0-padding。我将大约 18K 个帖子分成训练和验证集,训练/验证的比例 = 4/1。我创建了一个简单的 1 个密集隐藏层网络,输入是扁平化的嵌入序列:
EMBEDDING_DIM = 300
MAX_SEQUENCE_LENGTH = 1100
layer_size = 25
dropout = 0.3
sequence_input = Input(shape=(MAX_SEQUENCE_LENGTH,), dtype='int32', name='dnn_input')
embedding_layer = Embedding(len(word_index) + 1, EMBEDDING_DIM, input_length=MAX_SEQUENCE_LENGTH, name = 'embedding_dnn')
embedded_sequences = embedding_layer(sequence_input)
x = Flatten(name='flatten_dnn')(embedded_sequences) …Run Code Online (Sandbox Code Playgroud) machine-learning text-classification keras word-embedding zero-padding
我正在KeyError: "... not in index"使用 pandas 的 pivot_table一段时间。这是示例代码:
arrays = [['bar', 'bar', 'foo', 'foo'],
['one', 'two', 'one', 'two'], ['A','A','B','B']]
tuples = list(zip(*arrays))
index = pd.MultiIndex.from_tuples(tuples, names=['first', 'second', 'third'])
values = np.array([[1,2,3,4],[5,6,7,8]])
df = pd.DataFrame(values.T, index=index, columns = ['0', '1'])
# here comes the pivot_table, this one works, it has 'colums'
df.pivot_table(index = ['first', 'second'], columns = 'third', aggfunc = 'sum')
#this one works, it has 'margins'
df.pivot_table(index = ['first', 'second'], aggfunc = 'sum', margins=True)
#this one fails, it …Run Code Online (Sandbox Code Playgroud) 我正在尝试做一个看似非常简单的任务.给定一个数据帧:
daf = pd.DataFrame({'co':['g','r','b','r','g','r','b','g'],'sh':[ 'C', 'S', 'R', 'R', 'R', 'S', 'C', 'R']})
Run Code Online (Sandbox Code Playgroud)co sh 0 g c 1 r s 2 b r 3 r r 4 g r 5 r s 6 b c 7 g r
我想用'co'和'sh'值的唯一组合来计算记录的数量,并输出为包含行['g','r','b']和列['c'的表格, 'S', 'R']
Run Code Online (Sandbox Code Playgroud)c s r g 1 0 2 r 0 1 1 b 1 0 1
可以使用pivot_table完成吗?
谢谢,
mongodb ×2
pandas ×2
pivot-table ×2
pymongo ×2
python ×2
dataframe ×1
imputation ×1
keras ×1
statsmodels ×1
zero-padding ×1