组织以下pandas数据框的最有效方法是什么:
数据=
Position Letter
1 a
2 b
3 c
4 d
5 e
变成字典一样alphabet[1 : 'a', 2 : 'b', 3 : 'c', 4 : 'd', 5 : 'e']
?
In [9]: pd.Series(df.Letter.values,index=df.Position).to_dict()
Out[9]: {1: ‘a’, 2: ‘b’, 3: ‘c’, 4: ‘d’, 5: ‘e’}
速度比较(使用Wouter方法)
In [6]: df = pd.DataFrame(randint(0,10,10000).reshape(5000,2),columns=list('AB'))
In [7]: %timeit dict(zip(df.A,df.B))
1000 loops, best of 3: 1.27 ms per loop
In [8]: %timeit pd.Series(df.A.values,index=df.B).to_dict()
1000 loops, best of 3: 987 us per loop
问题内容: 我想按顺序对数据帧中的财务数据执行自己的复杂操作。 例如,我正在使用以下来自的 MSFT CSV文件: 然后,我执行以下操作: 那是最有效的方法吗?考虑到对熊猫速度的关注,我认为必须有一些特殊的函数来迭代这些值,使它们也可以检索索引(可能通过生成器来提高内存效率)?不幸的是,只能逐列进行迭代。 问题答案: 熊猫的最新版本现在包括用于遍历行的内置函数。 或者,如果你想更快地使用它 但是,
问题内容: 我正在考虑对每个具有大量列的数据帧进行合并操作。不想结果有两个具有相同名称的列。我正在尝试查看两个框架之间共有的列名列表: 我该如何在Index对象上操作该NumPy布尔数组,使其仅返回公用列的列表? 问题答案: 使用或: 后一种选择的替代语法:
问题内容: 我肯定在这里错过了一些简单的事情。尝试在熊猫中合并具有相同列名的两个数据框,但右侧的数据框具有一些左侧没有的列,反之亦然。 我试着加入外部联接: 但这产生了: 我还指定了一个要连接的单列(例如on =“ id”),但是它复制了除“ id”以外的所有列,例如attr_1_x,attr_1_y,这并不理想。我也将整个列列表(有很多)传递给了“ on”: 产生: 我想念什么?我想获得一个带有
问题内容: 最近,我一直在做很多模态窗口弹出窗口,而我没有使用jQuery。我用来在页面上创建新元素的方法绝大多数都是这样的: 但是,我感到这不是执行此操作的最佳或最有效的方法。从性能的角度来看,在jQuery中创建元素的最佳方法是什么? 问题答案: 我使用基准测试表明该技术是最快的。我推测这是因为jQuery不必将其标识为元素并创建元素本身。 您应该真正使用不同的Javascript引擎运行基准
问题内容: 在JavaScript中串联N个对象数组的最有效方法是什么? 数组是可变的,结果可以存储在输入数组之一中。 问题答案: 如果要连接两个以上的数组,那么这样做是为了方便和可能的性能。 对于仅连接两个数组,可以使用接受多个包含要添加到数组中的元素的参数的事实来代替将一个数组中的元素添加到另一个数组的末尾而不产生新数组。使用它也可以代替它,但是这样做似乎没有性能优势。 在ECMAScript
1 直接创建 dict = {'name':'earth', 'port':'80'} 2 工厂方法 items=[('name','earth'),('port','80')] dict2=dict(items) dict1=dict((['name','earth'],['port','80'])) 3 fromkeys()方法 dict1={}.fromkeys(('x','y'),-1