所以我有这个概念的困难*args和**kwargs.
到目前为止,我已经了解到:
*args =参数列表 - 作为位置参数**kwargs = dictionary - 其键成为单独的关键字参数,值成为这些参数的值.我不明白这会对哪些编程任务有所帮助.
也许:
我想输入列表和字典作为函数AND的参数同时作为通配符,所以我可以传递任何参数?
有一个简单的例子来说明如何*args和**kwargs使用?
我发现的教程也使用了"*"和变量名.
是*args和**kwargs刚才占位符或者你使用完全相同*args,并**kwargs在代码中?
鉴于Python函数:
def a_method(arg1, arg2):
pass
Run Code Online (Sandbox Code Playgroud)
如何提取参数的数量和名称.即,鉴于我有一个func的引用,我想要返回func.[something]("arg1","arg2").
这种情况的使用场景是我有一个装饰器,我希望使用方法参数的顺序与它们为实际函数出现的顺序相同.也就是说,当我调用aMethod("a","b")时,装饰器看起来会打印出"a,b"吗?
我正在使用iPython笔记本.当我这样做:
df
Run Code Online (Sandbox Code Playgroud)
我得到一张带细胞的美丽桌子.但是,如果我这样做:
df1
df2
Run Code Online (Sandbox Code Playgroud)
它不会打印出第一张漂亮的桌子.如果我试试这个:
print df1
print df2
Run Code Online (Sandbox Code Playgroud)
它以不同的格式打印出表格,使列溢出并使输出非常高.
有没有办法强制它打印出两个数据集的漂亮表格?
我想打印整个数据帧,但我不想打印索引
另外,一列是datetime类型,我只想打印时间,而不是日期.
数据框如下所示:
User ID Enter Time Activity Number
0 123 2014-07-08 00:09:00 1411
1 123 2014-07-08 00:18:00 893
2 123 2014-07-08 00:49:00 1041
Run Code Online (Sandbox Code Playgroud)
我希望它打印为
User ID Enter Time Activity Number
123 00:09:00 1411
123 00:18:00 893
123 00:49:00 1041
Run Code Online (Sandbox Code Playgroud) 是否可以获取传递给函数的变量的原始变量名?例如
foobar = "foo"
def func(var):
print var.origname
Run Code Online (Sandbox Code Playgroud)
以便:
func(foobar)
Run Code Online (Sandbox Code Playgroud)
返回:
>>foobar
编辑:
我所要做的就是做一个像下面这样的函数:
def log(soup):
f = open(varname+'.html', 'w')
print >>f, soup.prettify()
f.close()
Run Code Online (Sandbox Code Playgroud)
..并让函数从传递给它的变量的名称生成文件名.
我想如果不可能我只需要每次都将变量和变量的名称作为字符串传递.
我知道如何在Jupyter Notebook中显示彼此相邻(水平)的两个图,但我不知道是否有办法显示旁边有数据框的图.我想它看起来像这样:
但是,我无法做到这一点,每当我打印出数据帧时,它都显示在我的情节下面......
这是一个类似的问题,但我也在同一个单元格中输出我希望垂直定向的图.
我目前有这个:
# line plots
df_plot[['DGO %chg','DLM %chg']].plot(figsize=(15,5),grid=True)
plt.ylim((-ylim,ylim))
df_plot[['Diff']].plot(kind='area',color='lightgrey',figsize=(15,1))
plt.xticks([])
plt.xlabel('')
plt.ylim((0,ylim_diff))
plt.show()
# scatter plots
plt.scatter(x=df_scat[:-7]['DGO'],y=df_scat[:-7]['DLM'])
plt.scatter(x=df_scat[-7:]['DGO'],y=df_scat[-7:]['DLM'],color='red')
plt.title('%s Cluster Last 7 Days'%asset)
plt.show()
# display dataframe
# display(df_scat[['DGO','DLM']][:10]) <-- prints underneath, not working
Run Code Online (Sandbox Code Playgroud)
红框显示我希望我的数据框出现的位置.有没有人对如何做到这一点有任何想法?
谢谢你的想法!
我想在iPython中并排显示2个PNG图像。
我要做的代码是:
from IPython.display import Image, HTML, display
img_A = '\path\to\img_A.png'
img_B = '\path\to\img_B.png'
display(HTML("<table><tr><td><img src=img_A></td><td><img src=img_B></td></tr></table>"))
Run Code Online (Sandbox Code Playgroud)
但是它不输出图像,而只显示两个图像的占位符:
我也尝试了以下方法:
s = """<table>
<tr>
<th><img src="%s"/></th>
<th><img src="%s"/></th>
</tr></table>"""%(img_A, img_B)
t=HTML(s)
display(t)
Run Code Online (Sandbox Code Playgroud)
但是结果是一样的:
这些图像肯定在路径中,因为我通过在弹出窗口中显示它们进行了验证:
plt.imshow(img_A)
plt.imshow(img_B)
Run Code Online (Sandbox Code Playgroud)
并且它们确实出现在弹出窗口中。
如何在iPython中并排显示2张图像?
有没有一种简单的方法可以在 Jupyter 笔记本中快速并排查看两个 pd.DataFrame 的内容?
df1 = pd.DataFrame([(1,2),(3,4)], columns=['a', 'b'])
df2 = pd.DataFrame([(1.1,2.1),(3.1,4.1)], columns=['a', 'b'])
df1, df2
Run Code Online (Sandbox Code Playgroud)