据我所知,%debug magic可以在一个单元格内进行调试.
但是,我有跨多个单元格的函数调用.
例如,
In[1]: def fun1(a)
def fun2(b)
# I want to set a breakpoint for the following line #
return do_some_thing_about(b)
return fun2(a)
In[2]: import multiprocessing as mp
pool=mp.Pool(processes=2)
results=pool.map(fun1, 1.0)
pool.close()
pool.join
Run Code Online (Sandbox Code Playgroud)
我尝试了什么:
我试着设置%debug在cell-1的第一行.但它甚至在执行cell-2之前立即进入调试模式.
我试图%debug在代码之前添加行return do_some_thing_about(b).但随后代码永远运行,永不停止.
在ipython笔记本中设置断点的正确方法是什么?
试试1:
df[ df > 1.0 ]:这返回了所有细胞NAN.
Try2:
df.loc[ df > 1.0 ] :这回来了 KeyError: 0
df[df['A']> 1.0] :这有效 - 但我想将过滤条件应用于所有列.
给定已编制索引的现有Dataframe.
>>> df = pd.DataFrame(np.random.randn(10, 5),columns=['a', 'b', 'c', 'd', 'e'])
>>> df
a b c d e
0 -0.131666 -0.315019 0.306728 -0.642224 -0.294562
1 0.769310 -1.277065 0.735549 -0.900214 -1.826320
2 -1.561325 -0.155571 0.544697 0.275880 -0.451564
3 0.612561 -0.540457 2.390871 -2.699741 0.534807
4 -1.504476 -2.113726 0.785208 -1.037256 -0.292959
5 0.467429 1.327839 -1.666649 1.144189 0.322896
6 -0.306556 1.668364 0.036508 0.596452 0.066755
7 -1.689779 1.469891 -0.068087 -1.113231 0.382235
8 0.028250 -2.145618 0.555973 -0.473131 -0.638056
9 0.633408 -0.791857 0.933033 1.485575 -0.021429
>>> df.set_index("a")
b …Run Code Online (Sandbox Code Playgroud) 给定一个多索引 Pandas 数据框 df2,我想计算每个类别中每一行与上面行的差异。
import pandas as pd
inner = ('a','b','c')
cols = ('A','B','C','D')
df1=pd.DataFrame(np.random.randn(3,4), index=inner, columns=cols)
df2=pd.concat([df1,df1],keys=['X','Y'])
Run Code Online (Sandbox Code Playgroud)
df2:
A B C D
X a -0.391804 -0.307916 -0.265643 -0.222193
b -0.142498 -1.389972 1.060328 1.207945
c 1.156881 1.596382 0.620923 0.592739
Y a -0.391804 -0.307916 -0.265643 -0.222193
b -0.142498 -1.389972 1.060328 1.207945
c 1.156881 1.596382 0.620923 0.592739
Run Code Online (Sandbox Code Playgroud)
这是我尝试过的:
df2.groupby(level=[0]).apply(lambda x: df2.loc[x.index[:-1]-df2.loc[x.index[1:]]])
Run Code Online (Sandbox Code Playgroud)
但这会得到一个带有三级索引的错误结果数据框。
A B C D
X X a -0.391804 -0.307916 -0.265643 -0.222193
b -0.142498 -1.389972 1.060328 1.207945
Y Y a -0.391804 …Run Code Online (Sandbox Code Playgroud)