我有一个MongoDB开发集群,随着时间的流逝,我创建了索引,作为开发改进的一部分.在测试/生产MongoDB群集时,我想维护相同的索引. 那么,如何获得现有集合的所有索引并在新数据库上创建相同的集合索引? 解决方案 从Mongo Shell,切换到要收集索引的数据库 步骤1:切换到现有DB并在脚本下方运行 > use my_existing_db 下面的脚本通过所有集合循环,并为每个集合构建run command. var database = ‘my_new_db' // SHOULD ALWAYS MATCH DESTINATION DB NAME db.getCollectionNames().forEach(function(collection){ var command = {} var indexes = [] idxs = db.getCollection(collection).getInd
以下是关于 multi-index 的编程技术问答
我有一个看起来像这样的现有数据框架: 1 | 1 | 1 | 2 | 2 | 2 | 2 -------------------------------------------------------- | abc | def | ghi | jkl | mno | pqr | stu | 1.00 | 2.00 | 3.00 | 4.00 | 5.00 | 6.00 | 7.00 | 1.00 | 2.00 | 3.00 | 4.00 | 5.00 | 6.00 | 7.00 | 1.00 | 2.00 | 3.00 | 4.00 | 5.00 | 6.00 | 7.00 | 1.00 | 2.00 | 3.00 | 4.00 | 5.00 | 6.00 | 7.00 | 1.00 | 2.00 | 3.00 | 4.0
考虑以下示例数据: data = {"Taxon": ["Firmicutes"]*5, "Patient": range(5), "Tissue": np.random.randint(0, 1000, size=5), "Stool": np.random.randint(0, 1000, size=5)} df = pd.DataFrame(data).set_index(["Taxon", "Patient"]) print(df) Stool Tissue Taxon Patient Firmicutes 0 740 389 1 786 815 2 178 265 3 841
我想使用部分匹配的索引或元组列表切片数据框. _ix = [('foo','a', 1), ('foo','a', 2), ('foo','b', 1), ('foo','b', 2), ('foo','c', 1), ('foo','c', 2)] df = pd.DataFrame(np.ones((6, 1)), index=pd.MultiIndex.from_tuples(_ix)) print(df) 0 foo a 1 1.0 2 1.0 b 1 1.0 2 1.0 c 1 1.0 2 1.0 给出了一个查询索引,例如: q_ix = [('foo', 'a'), ('foo', 'c')] 我想获得 0 foo a 1 1.0 2 1.0 c 1 1.0 2 1.0 i can
我正在尝试转换这样的DF: df = pd.DataFrame({'A': ['A1', 'A1', 'A1', 'A1', 'A1', 'A1', 'A2', 'A2', 'A2', 'A2', 'A2', 'A2', 'A2'], 'B': ['B1', 'B1', 'B2', 'B2', 'B3', 'B3', 'B4', 'B5', 'B6', 'B7', 'B7', 'B8', 'B8']}) 通过将n(这里2)最大索引(按b计数)到: 我这样做的方式: df = df.groupby(['A', 'B'])['A'].count() df = df.groupby(level=0).nlargest(2).reset_index(level=0, drop=True) 是什么给了我的(这与我需要的东西很近): 现在,我知道要转换多索引的唯一方法是: df.reset_index(level=1) df.unstack()
我有一个带有多索引的熊猫数据框,我想在其中汇总重复的键行,如下所示: import numpy as np import pandas as pd df = pd.DataFrame({'S':[0,5,0,5,0,3,5,0],'Q':[6,4,10,6,2,5,17,4],'A': ['A1','A1','A1','A1','A2','A2','A2','A2'], 'B':['B1','B1','B2','B2','B1','B1','B1','B2']}) df.set_index(['A','B']) Q S A B A1 B1 6 0 B1 4 5 B2 10 0 B2 6 5 A2 B1 2 0 B1 5 3 B1 17 5 B2 4 0 ,我想将此数据帧分组以汇总Q值(sum),并保
我想在一个级别上以3级多索引在一个级别上概括(边缘化),以产生具有2级多索引的系列.例如,如果我有以下内容: ind = [tuple(x) for x in ['ABC', 'ABc', 'AbC', 'Abc', 'aBC', 'aBc', 'abC', 'abc']] mi = pd.MultiIndex.from_tuples(ind) data = pd.Series([264, 13, 29, 8, 152, 7, 15, 1], index=mi) A B C 264 c 13 b C 29 c 8 a B C 152 c 7 b C 15 c 1 我想在C变量上概括以产生以下输出: A B 277 b 37 a B 159 b 16 熊猫的最佳方法是什么? 解决方案
无论如何都有在多索引中的列上使用groupby.我知道您可以在行上,并且有很好的 document/a>在这方面.但是,我似乎无法将列分组.我拥有的唯一解决方案是转换数据框. #generate data (copied from pandas example) arrays=[['bar', 'bar', 'baz', 'baz', 'foo', 'foo', 'qux', 'qux'],['one', 'two', 'one', 'two', 'one', 'two', 'one', 'two']] tuples = list(zip(*arrays)) index = pd.MultiIndex.from_tuples(tuples, names=['first', 'second']) df = pd.DataFrame(np.random.randn(3, 8), index=['A', 'B', 'C'], columns=index) 现在,我将尝试将失败的列分组
我有一个数据框: pe_odds[ [ 'EVENT_ID', 'SELECTION_ID', 'ODDS' ] ] Out[67]: EVENT_ID SELECTION_ID ODDS 0 100429300 5297529 18.00 1 100429300 5297529 20.00 2 100429300 5297529 21.00 3 100429300 5297529 22.00 4 100429300 5297529 23.00 5 100429300 5297529 24.00 6 100429300 5297529 25.00 当我使用groupby and agg时,我会获得多数索引的结果: pe_odds.groupby( [ 'EVENT_ID', 'SELECTION_ID' ] )[ 'ODDS' ]
以下是我的数据框.我进行了一些转换以创建类别列,并删除了它的原始列.现在,我需要进行一个小组来删除dups,例如Love和Fashion可以通过A groupby sum卷起. df.colunms = array([category, clicks, revenue, date, impressions, size], dtype=object) df.values= [[Love 0 0.36823 2013-11-04 380 300x250] [Love 183 474.81522 2013-11-04 374242 300x250] [Fashion 0 0.19434 2013-11-04 197 300x250] [Fashion 9 18.26422 2013-11-04 13363 300x250]] 这是我创建DataFrame 时创建的索引 print df.index array([ 0, 1, 2, 3, 4, 5, 6, 7,
我有以下pandas dataframe: token year uses books 386 xanthos 1830 3 3 387 xanthos 1840 1 1 388 xanthos 1840 2 2 389 xanthos 1868 2 2 390 xanthos 1875 1 1 i用重复token和years汇总行: dfalph = dfalph[['token','year','uses','books']].groupby(['token', 'year']).agg([np.sum]) dfalph.columns = dfalph.columns.droplevel(1) uses books token year xanthos 1830 3
我从这样的输入数据开始 df1 = pandas.DataFrame( { "Name" : ["Alice", "Bob", "Mallory", "Mallory", "Bob" , "Mallory"] , "City" : ["Seattle", "Seattle", "Portland", "Seattle", "Seattle", "Portland"] } ) 在打印时会出现以下内容: City Name 0 Seattle Alice 1 Seattle Bob 2 Portland Mallory 3 Seattle Mallory 4 Seattle Bob 5 Portland Mallory 分组足够简单: g1 = df1.groupby( [ "Name", "City"] ).count() 和打印产生GroupBy对象:
我有一个多索引数据框.索引列是Date和Symbol.我想重置每个number number number number的行.我想根据包含True或False的列进行此操作.如果condition是Date上的True,则应重置rolling_max并从此Date中计算最大值.如果condition是False,则rolling_max应该"正常"工作 - 给定Symbol的今天和昨天的number最大程度地发挥作用. condition列与number列无关(它们不依赖于对方).这是预期的输出: number condition rolling_max Date Symbol 1990-01-01 A 29 False 29 1990-01-01 B 7 False 7 1
我有一个多索引pandas dataframe: lst = [(1, 2), (3, 4), (5, 6), (7, 8), (9, 10), (11, 12), (13, 14), (21, 22)] df = pd.DataFrame(lst, pd.MultiIndex.from_product([['A', 'B'], ['1','2', '3', '4']])).loc[:('B', '2')] df["tuple"] = list(zip(df[0], df[1])) #df: 0 1 tuple A 1 1 2 (1, 2) 2 3 4 (3, 4) 3 5 6 (5, 6) 4 7 8 (7, 8) B 1 9 10 (9, 10) 2 11 12 (11, 12) 我想将包含元组的列转换为元组列表.我的方法是: #dataframe to
我想选择Pandas MultiIndex DataFrame的一部分应用一些后处理(主要是为了绘制一些图形). 为此,我想每个多索引级别使用一个下拉级ipywidgets.我想拥有一个能够生成该小部件的函数,无论数据框的级别数量多少. 让我们假设我们有以下数据框(具有3个级别的多指数): d = {'num_legs': [4, 4, 2, 2], 'num_wings': [0, 0, 2, 2], 'class': ['mammal', 'mammal', 'mammal', 'bird'], 'animal': ['cat', 'dog', 'bat', 'penguin'], 'locomotion': ['walks', 'walks', 'flies', 'walks']} df = pd.DataFrame(data=d) df = df.set_index(['class', 'locomotion', 'animal']) 我想拥有第一个
我有一个具有两个级别的多索引的数据框.给定第二级的示例: d = { "col1": [1, 2, 3, 4], "col2": [1, 2, 3, 4], "col3": [1, 2, 3, 4], "col4": [1, 2, 3, 4], "col5": [1, 2, 3, 4], } df = pd.DataFrame(data=d) df.columns = pd.MultiIndex.from_product([df.columns, ["identical"]]) 如何更改一个单数值,以使索引的第二级看起来像这样? ['example', 'identical', 'identical', 'identical', 'identical'] 我试图这样做: updated_columns = list(df.columns.get_level_values(1)) updated_columns[0] = 'exa
这是我正在处理的数据框架的示例: import pandas as pd import numpy as np from scipy.stats import zscore df = pd.DataFrame( index=pd.MultiIndex.from_tuples( [('Monday', '2019-11-04'),('Monday', '2019-11-11'), ('Monday', '2019-11-18'), ('Tuesday', '2019-11-05'), ('Tuesday', '2019-11-12'), ('Tuesday', '2019-11-19'), ('Wednesday', '2019-11-06'), ('Wednesday', '2019-11-13'), ('Wednesday', '2019-11-20'), ( 'Thursday', '2019-11-07'), ('Thursday'