在大部分操作pandas可以与运营商链接(来完成groupby,aggregate,apply,等),但我发现过滤行的唯一方法是通过正常的托架索引
df_filtered = df[df['column'] == value]
Run Code Online (Sandbox Code Playgroud)
这是没有吸引力的,因为它需要df在能够过滤其值之前分配给变量.有更像以下的东西吗?
df_filtered = df.mask(lambda x: x['column'] == value)
Run Code Online (Sandbox Code Playgroud) Vim 7.3的一个新功能是"持久性撤销",它允许在退出缓冲区时将非文本保存到文件中.
不幸的是,我还没能完全启用它,或者我必须使用它错了.这是我到目前为止所尝试的:
我在〜/ .vimrc中添加了以下内容
set undofile " Save undos after file closes
set undodir=$HOME/.vim/undo " where to save undo histories
set undolevels=1000 " How many undos
set undoreload=10000 " number of lines to save for undo
Run Code Online (Sandbox Code Playgroud)
在此之后,我应该能够打开任何文件,编辑它,然后保存关闭它,当我再次打开它时,我应该能够撤消/重做,好像我永远不会离开.不幸的是,情况似乎并非如此,因为从未写过任何无人事务所.
笔记:
我在Win 7上使用来自Vim的Vim 7.3而没有奶油项目.持久撤消是烘焙的.
$ HOME/.vim/undo存在于我的文件系统中
我想通过每行的函数来过滤行,例如
def f(row):
return sin(row['velocity'])/np.prod(['masses']) > 5
df = pandas.DataFrame(...)
filtered = df[apply_to_all_rows(df, f)]
Run Code Online (Sandbox Code Playgroud)
或者对于另一个更复杂,人为的例子,
def g(row):
if row['col1'].method1() == 1:
val = row['col1'].method2() / row['col1'].method3(row['col3'], row['col4'])
else:
val = row['col2'].method5(row['col6'])
return np.sin(val)
df = pandas.DataFrame(...)
filtered = df[apply_to_all_rows(df, g)]
Run Code Online (Sandbox Code Playgroud)
我怎么能这样做?
我经常发现自己与元组的列表,序列和迭代器一起工作,并希望做类似以下的事情,
val arrayOfTuples = List((1, "Two"), (3, "Four"))
arrayOfTuples.map { (e1: Int, e2: String) => e1.toString + e2 }
Run Code Online (Sandbox Code Playgroud)
但是,编译器似乎从不同意这种语法.相反,我最终写作,
arrayOfTuples.map {
t =>
val e1 = t._1
val e2 = t._2
e1.toString + e2
}
Run Code Online (Sandbox Code Playgroud)
这真是太傻了.我怎么能绕过这个?
是否存在移动到视觉选择的开始或结束的动作?我知道o在视觉模式下两者之间交替,但我需要能够精确选择开始.总体目标是用括号围绕视觉选择区域.
根据评论,我能够使用以下宏实现此功能.这个想法是:
<ESC> 退出视觉模式`> 到前一个视觉选择的结尾a) 附加一个右括号<ESC> 退出插入模式`< 转到上一个视觉选择的开始i( 插入一个左括号<ESC> 再次退出插入模式.例如:
map \q <ESC>`>a)<ESC>`<i(<ESC>
Run Code Online (Sandbox Code Playgroud)
根据另一条评论,我们有一个更简洁的解决方案,
map \q c()<ESC>P
Run Code Online (Sandbox Code Playgroud) 在tmux,处理的默认行为C-b 0是跳转到窗口0.我想C-b C-0在当前窗口中跳转到窗格0.我尝试添加,
bind-key C-0 select-pane -t 0
Run Code Online (Sandbox Code Playgroud)
我.tmux.conf失败了.还有什么我想念的吗?
我有一个问题应该相当简单,但我还没有找到解决方案.我正在编辑我的.vimrc,并希望使用保存在变量中的结果设置一个选项.例如,我想在〜/ .vimetc中聚合我的所有临时文件.这就是我想做的事情,
let s:vimetc=$HOME.'/vimetc/'
set backupdir=s:vimetc.'backups/'
set directory=s:vimetc.'vimswap/'
set viewdir=s:vimetc.'vimswap/'
Run Code Online (Sandbox Code Playgroud)
当然,set不解析变量,所以我最终得到了文字| s:vimetc.'backups /'|,而不是我想要的.我尝试使用&s:vimetc,但结果相似.有谁知道如何做到这一点?
pandas 提供了按行和列索引列表查找的功能,
In [49]: index = ['a', 'b', 'c', 'd']
In [50]: columns = ['one', 'two', 'three', 'four']
In [51]: M = pandas.DataFrame(np.random.randn(4,4), index=index, columns=columns)
In [52]: M
Out[52]:
one two three four
a -0.785841 -0.538572 0.376594 1.316647
b 0.530288 -0.975547 1.063946 -1.049940
c -0.794447 -0.886721 1.794326 -0.714834
d -0.158371 0.069357 -1.003039 -0.807431
In [53]: M.lookup(index, columns) # diagonal entries
Out[53]: array([-0.78584142, -0.97554698, 1.79432641, -0.8074308 ])
Run Code Online (Sandbox Code Playgroud)
我想使用相同的索引方法来设置M元素.我怎样才能做到这一点?
我有一个#-separated文件有三列:第一个是整数,第二个看起来像浮点数,但不是,第三个是字符串.我尝试将其直接加载到python中pandas.read_csv
In [149]: d = pandas.read_csv('resources/names/fos_names.csv', sep='#', header=None, names=['int_field', 'floatlike_field', 'str_field'])
In [150]: d
Out[150]:
<class 'pandas.core.frame.DataFrame'>
Int64Index: 1673 entries, 0 to 1672
Data columns:
int_field 1673 non-null values
floatlike_field 1673 non-null values
str_field 1673 non-null values
dtypes: float64(1), int64(1), object(1)
Run Code Online (Sandbox Code Playgroud)
pandas尝试智能并自动将字段转换为有用的类型.问题是我实际上并不希望它这样做(如果我这样做,我会使用这个converters论点).如何防止pandas自动转换类型?
我不知道如何编写允许将解释器放入Scala 2.9代码的代码.这个问题是一个后续这一块,这要求斯卡拉相当于什么,
import pdb
pdb.set_trace()
Run Code Online (Sandbox Code Playgroud)
来自Python.那里给出的建议主要是针对Scala 2.8,相关的包不再存在于以前的形式中.也就是说,
scala.nsc.tools.nsc.Interpreter.{break, breakIf} 已被转移到 scala.nsc.tools.nsc.interpreter.ILoop.{break, breakIf}DebugParam现在NamedParam在scala.tools.nsc.interpreter中正如原始帖子中所述,父进程的类路径不会自动传递给新的解释器,因此这里提供了一种解决方法.不幸的是,那里调用的许多类/方法现在已经改变了,我不太确定如何修改代码表现为"预期".
谢谢!
编辑:这是我的测试代码,在当前编译和运行,但尝试在调试器中执行任何操作导致应用程序冻结,如果编译scalac和执行scala
import scala.tools.nsc.interpreter.ILoop._
object Main extends App {
case class C(a: Int, b: Double, c: String) {
def throwAFit(): Unit = {
println("But I don't wanna!!!")
}
}
// main
override def main(args: Array[String]): Unit = {
val c = C(1, 2.0, "davis")
0.until(10).foreach {
i =>
println("i = " + i)
breakIf(i …Run Code Online (Sandbox Code Playgroud)