小编sjk*_*sjk的帖子

如果索引操作返回视图或副本是不确定的,那么pandas中的视图点是什么?

我已经从R换成了熊猫.当我做类似的事情时,我经常得到SettingWithCopyWarnings

df_a = pd.DataFrame({'col1': [1,2,3,4]})    

# Filtering step, which may or may not return a view
df_b = df_a[df_a['col1'] > 1]

# Add a new column to df_b
df_b['new_col'] = 2 * df_b['col1']

# SettingWithCopyWarning!!
Run Code Online (Sandbox Code Playgroud)

我想我理解这个问题,虽然我很乐意了解我的错误.在给定的示例中,未定义是否df_b是视图df_a.因此,分配的效果df_b尚不清楚:它是否会影响df_a?通过在过滤时显式制作副本可以解决此问题:

df_a = pd.DataFrame({'col1': [1,2,3,4]})    

# Filtering step, definitely a copy now
df_b = df_a[df_a['col1'] > 1].copy()

# Add a new column to df_b
df_b['new_col'] = 2 * df_b['col1']

# No Warning now
Run Code Online (Sandbox Code Playgroud)

我认为有些东西是我遗漏的:如果我们真的无法确定我们是否创建了一个视图,那么哪些观点有用呢?来自pandas文档(http://pandas-docs.github.io/pandas-docs-travis/indexing.html?highlight=view#indexing-view-versus-copy)

除了简单的情况之外,很难预测它[ …

python views slice pandas

9
推荐指数
1
解决办法
406
查看次数

Ipython bash/shell 单元格魔法:单元格之间可以有持久变量吗?

这是我在 SO 上的第一篇文章,所以如果我做错了什么,请告诉我。

我对在 ipython 中使用不同的编程语言很感兴趣,类似于 emacs 组织模式下的 babel/literal 编程。我喜欢 emacs 组织模式的一点是,可以有多个“单元”连接到同一个 R/bash 会话。这允许我重用在文档的较早部分创建的变量/函数,即使我在两者之间做了其他事情。

我发现这在带有 Rmagic 的 ipython 中是可能的。举个例子

In [1]: %load_ext rpy2.ipython

In [2]: %%R
        a <- 3
        a
Out [2]: 3

In [3]: something_in_python = 'I am doing something unrelated now'

In [4]: %%R
        cat('My variable a is still here, its value is: ', a) # a is still here!

Out [4]: My variable is still here, its value is: 3
Run Code Online (Sandbox Code Playgroud)

我非常希望能够在 bash 中做类似的事情。但是,无论我使用“%%script bash”还是 %%sx,变量都不是持久的。这是我想要做的:

In [1]: …
Run Code Online (Sandbox Code Playgroud)

python emacs bash shell ipython

3
推荐指数
1
解决办法
1611
查看次数

标签 统计

python ×2

bash ×1

emacs ×1

ipython ×1

pandas ×1

shell ×1

slice ×1

views ×1