将空列添加到pandas DataFrame
对象的最简单方法是什么?我偶然发现的最好的就像是
df['foo'] = df.apply(lambda _: '', axis=1)
Run Code Online (Sandbox Code Playgroud)
是否有一种不那么不正常的方法?
有没有办法完全禁用边缘折叠?我发现的唯一解决方案(名称为"uncollapsing")需要使用1px边框或1px填充.我发现这是不可接受的:无关的像素使计算变得复杂,没有充分的理由.是否有更合理的方法来禁用此边距折叠?
我想在这个git存储库中定义一个新的"root"分支."root"分支是指完全独立于存储库1中所有其他分支的分支.
不幸的是,甚至在A
repo的提交树的基础上提交(让我们称之为)包含很多文件(这是一个在已经相当成熟的项目上初始化的存储库).
这意味着即使我A
作为新分支提供<start-point>
,这个新分支也不会从"干净的平板"开始,而是包含所有提交的文件A
.
有没有什么方法可以在这个存储库中创建一个完全裸的分支,<start-point>
尽可能接近A
?
1 BTW,这不等于创建一个新的回购.由于很多原因,单独的回购将不太方便.
编辑:好的,这是我做的,基于vcsjones的回答:
# save rev of the current earliest commit
OLDBASE=$(git rev-list --max-parents=0 HEAD)
# create a new orphan branch and switch to it
git checkout --orphan newbranch
# make sure it's empty
git rm -rf .
# create a new empty commit in the new branch, and
# save its rev in NEWBASE
git commit …
Run Code Online (Sandbox Code Playgroud) 如何将字符串作为32位浮点的二进制IEEE 754表示?
例
1.00 - >'00111111100000000000000000000000'
在Python中,可以向dict
1构造函数传递一系列键值对:
>>> dict([['name', 'Bob'], ['age', 42], ['breakfast', 'eggs']])
{'age': 42, 'name': 'Bob', 'breakfast': 'eggs'}
Run Code Online (Sandbox Code Playgroud)
除了为此目的定义我自己的函数之外,我想不出用JavaScript做任何事情的方法:
function pairs_to_object(pairs) {
var ret = {};
pairs.forEach(function (p) { ret[p[0]] = p[1]; });
return ret;
}
Run Code Online (Sandbox Code Playgroud)
但我是一个JS noob ......对于这种对 - 对象转换,有没有内置的东西?
1出于这个问题的目的,我将Python dicts视为Python对象的JS对象,当然,相似性仅限于它们都是键值集合的事实.
注意:我没有尝试在Windows下或使用2.7.3以外的Python版本重现下面描述的问题.
引出问题的最可靠方法是通过:
(under bash
)管道以下测试脚本的输出:
try:
for n in range(20):
print n
except:
pass
Run Code Online (Sandbox Code Playgroud)
即:
% python testscript.py | :
close failed in file object destructor:
sys.excepthook is missing
lost sys.stderr
Run Code Online (Sandbox Code Playgroud)
我的问题是:
如何修改上面的测试脚本以避免在脚本运行时出现错误消息(在Unix /下
bash
)?
(正如测试脚本所示,错误不能用a来捕获try-except
.)
上面的例子是,诚然,高度人工化,但我遇到了同样的问题,有时当我的一个脚本的输出通过一些第三方软件管道.
错误信息肯定是无害的,但它对最终用户来说是令人不安的,所以我想让它保持沉默.
编辑:以下脚本,与上面的原始脚本不同之处仅在于它重新定义了sys.excepthook,其行为与上面给出的完全相同.
import sys
STDERR = sys.stderr
def excepthook(*args):
print >> STDERR, 'caught'
print >> STDERR, args
sys.excepthook = excepthook
try:
for n in range(20):
print n
except:
pass
Run Code Online (Sandbox Code Playgroud) 编辑:关闭的投票是错误的.重复字符N次中接受的答案通常不适用.例如:
>>> Array(3).map(Math.random)
[undefined, undefined, undefined]
Run Code Online (Sandbox Code Playgroud)
另外两个答案建议修改内置类,我认为这种做法完全不可接受.
这是在JS中生成3个随机数的数组有点浪费和不切实际的方法:
>>> [1, 1, 1].map(Math.random)
[0.6324464592887568, 0.5969209806782131, 0.7362755801487572]
Run Code Online (Sandbox Code Playgroud)
使用虚拟阵列(例如[1, 1, 1]
)以便人们可以对其进行调用map
,对于足够大的n来说,既浪费(内存)又不实用.
人们想要的是一个假设:
>>> repeat(3, Math.random)
[0.21425955396598173, 0.00226050232425945, 0.45261888146445495]
Run Code Online (Sandbox Code Playgroud)
在"纯JS"中最接近的是什么?
(我知道Underscore,但是它的API中有些东西对我没有意义,比如解释map
,所以我试图避免它.)
我一直在MATLAB文档中追逐这个问题的答案很长一段时间......
例如,在底部
http://www.mathworks.com/help/matlab/matlab_env/changing-the-startup-folder.html
它说
使用startup.m文件指定启动文件夹...
......这显然是荒谬的,因为其他地方的文件说这startup.m
可以在所谓的"启动文件夹"中找到.因此,此文件无法指定此文件夹的位置.
等等,这种循环遍及我在文档中找到的所有内容startup.m
.
我想知道的是:我可以或者不能以持久的方式自定义"启动文件夹"的位置,如果是这样,这个持久性信息存储在哪里?
请考虑以下代码:
var svg = d3.select('#somediv').append("svg").attr("width", w).attr("height", h);
Run Code Online (Sandbox Code Playgroud)
我想重构这段代码,以便它更像这样:
var svg = makesvg(w, h);
d3.select("#somediv").append(svg);
Run Code Online (Sandbox Code Playgroud)
请注意,与第一个版本中显示的情况相反,在第二个版本append
中不会创建 "svg"对象; 它只会附加到它d3.select("#somediv")
.
问题是如何实现该功能makesvg
.这反过来又减少了问题:如何在不使用的情况下实例化"svg"对象append
,因为可以执行以下操作:
function makesvg(width, height) {
return _makesvg().attr("width", w).attr("height", h);
}
Run Code Online (Sandbox Code Playgroud)
所以我的问题归结为_makesvg()
上面提到的假设工厂的通用等价物是什么?
在MATLAB中,要交换表的第一列和第二列A
,可以执行此操作1
A = A(:, [2 1 3:end]);
Run Code Online (Sandbox Code Playgroud)
如果A
是大熊猫,有没有一种同样方便的方法DataFrame
呢?
1 MATLAB使用基于1的索引.