MongoDB 迁移所有现有索引到新数据库
我有一个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
0 2023-05-22
编程技术问答社区
如何使第一行变成第二层的MultiIndex
我有一个看起来像这样的现有数据框架: 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
0 2023-05-22
编程技术问答社区
使用部分索引单元列表切片多索引数据框的最佳方法是什么?
我想使用部分匹配的索引或元组列表切片数据框. _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
0 2023-05-20
编程技术问答社区
数据框架。N个最大的索引值(从级别=1)到n个列
我正在尝试转换这样的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()
4 2023-05-19
编程技术问答社区
Pandas Multiindex Groupby聚合列与另一列的值
我有一个带有多索引的熊猫数据框,我想在其中汇总重复的键行,如下所示: 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),并保
4 2023-05-19
编程技术问答社区
在pandas系列中对一个多指标级别进行求和
我想在一个级别上以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 熊猫的最佳方法是什么? 解决方案
0 2023-05-18
编程技术问答社区
潘达的多指标分组在列上的比较
无论如何都有在多索引中的列上使用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) 现在,我将尝试将失败的列分组
2 2023-05-18
编程技术问答社区
Pandas groupby(),agg()-如何在没有多重索引的情况下返回结果?
我有一个数据框: 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' ]
4 2023-05-18
编程技术问答社区
如何在pandas中对一个多指标进行分组?
以下是我的数据框.我进行了一些转换以创建类别列,并删除了它的原始列.现在,我需要进行一个小组来删除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,
6 2023-05-18
编程技术问答社区
如何将pandas的数据从索引中移到多次groupby后的列中?
我有以下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
0 2023-05-18
编程技术问答社区
将Pandas GroupBy输出从系列转换为数据框架
我从这样的输入数据开始 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对象:
0 2023-05-18
编程技术问答社区
如何在pandas的MultiIndex数据框中有条件地重置一个滚动的max'的初始值/行?
我有一个多索引数据框.索引列是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
0 2023-05-18
编程技术问答社区
在多指数中排序"日期"
给定此多数索引数据框, Units Import Export Date 01012019 01022019 02012019 02022019 03012019 03022019 01012019 01022019 02012019 02022019 03012019 03022019 Period 0 4 3 1 1 2 4 2 2 1 1 2 2 1 2 2 3 2 4 2
4 2023-05-18
编程技术问答社区
Pandas-flattening一个包含图元的多索引列,但忽略缺失值
我有一个多索引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
6 2023-05-18
编程技术问答社区
生成链接的下拉级ipywidget在for循环中 - >每个多索引级别一个
我想选择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']) 我想拥有第一个
2 2023-05-18
编程技术问答社区
当索引级别具有相同的值时
我有一个具有两个级别的多索引的数据框.给定第二级的示例: 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
4 2023-05-18
编程技术问答社区
多索引pandas dataframe和Excel中的导出
我有这个多索引数据框: Value Year 2010 2011 2012 2013 2014 2015 2016 2017 2018 Partner Product Reporter FRA 111 ARG 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.0 ARM 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.0 AUT 0.00 0.00 0.00 0.00 0.00 0.00 0.0
2 2023-05-18
编程技术问答社区
将函数应用于多索引潘达斯数据框架
这是我正在处理的数据框架的示例: 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'
2 2023-05-18
编程技术问答社区