假设我在Jupyter/Ipython笔记本中进行了更大规模的数据分析,并完成了大量耗时的计算.然后,出于某种原因,我必须关闭jupyter本地服务器I,但是我想稍后返回进行分析,而不必再次进行所有耗时的计算.
我想什么想爱做的是pickle或存储整个Jupyter会话(所有大熊猫dataframes,np.arrays,变量,...),所以我可以放心地关闭服务器知道我可以在完全相同的状态返回到我的会话之前.
它在技术上是否可行?我忽略了内置功能吗?
编辑:根据这个答案,有一个%store 魔术应该是"轻量级泡菜".但是,您必须手动存储变量,如下所示:
#inside a ipython/nb session
foo = "A dummy string"
%store foo
关闭视频,重新启动内核#r
%store -r foo进行刷新
print(foo) # "A dummy string"
这与我想要的非常接近,但是必须手动完成并且无法区分不同的会话会使它变得不那么有用.
考虑使用具有相同名称的列的数据帧(显然这确实发生了,目前我有这样的数据集!:()
>>> df = pd.DataFrame({"a":range(10,15),"b":range(5,10)})
>>> df.rename(columns={"b":"a"},inplace=True)
df
a a
0 10 5
1 11 6
2 12 7
3 13 8
4 14 9
>>> df.columns
Index(['a', 'a'], dtype='object')
Run Code Online (Sandbox Code Playgroud)
我希望当按索引删除时,只有具有相应索引的列才会消失,但显然情况并非如此.
>>> df.drop(df.columns[-1],1)
0
1
2
3
4
Run Code Online (Sandbox Code Playgroud)
有没有办法摆脱具有重复列名称的列?
编辑:我选择第一列的误导值,现在修复
EDIT2:预期的结果是
a
0 10
1 11
2 12
3 13
4 14
Run Code Online (Sandbox Code Playgroud) 我正在尝试开发一个简单的后台应用程序以连接到我的onedrive帐户(工作)并定期下载一些文件。
我已经在这里注册了该应用程序https://apps.dev.microsoft.com/portal/register-app
我写下了client_id和client_secret
要获取访问令牌,我向发出POST请求
https://login.microsoftonline.com/common/oauth2/v2.0/token 与以下表单编码数据
{
'client_id': 'clientid here',
'client_secret': 'secret is here',
'scope': 'https://graph.microsoft.com/.default',
'grant_type': 'client_credentials',
}
Run Code Online (Sandbox Code Playgroud)
我回来了 access_token
{'ext_expires_in': 0,
'token_type': 'Bearer',
'expires_in': 3600,
'access_token': 'eyJ0eXAiOiJKV1QiLCJhbGciO---SHORTENED FOR BREVITY'}
Run Code Online (Sandbox Code Playgroud)
接下来,我Bearer向https://graph.microsoft.com/v1.0/me发出一个GET请求(正确设置了标题)
并得到这个错误的响应(对于任何端点,我都会得到)
{
"error": {
"code": "BadRequest",
"message": "Current authenticated context is not valid for this request",
"innerError": {
"request-id": "91059f7d-c798-42a1-b3f7-2487f094486b",
"date": "2017-08-05T12:40:33"
}
}
}
Run Code Online (Sandbox Code Playgroud)
任何想法可能有什么问题吗?
在数据库设计中有时使用带主键的日期表.
| date_id | Date | Record_timestamp | Day | Week | Month | Quarter | Year_half | Year |
|---------+----------------+---------------------+-----------+-------+--------+-------------+-------------+----------|
| 0 | 2000-01-01 | NaN | Saturday | 52 | 1 | 1 | 1 | 2000 |
| 1 | 2000-01-02 | NaN | Sunday | 52 | 1 | 1 | 1 | 2000 |
| 2 | 2000-01-03 | NaN | Monday | 1 | 1 | 1 | 1 | 2000 |
Run Code Online (Sandbox Code Playgroud)
如何在熊猫中做到这一点?
我有一个 EMR 集群
response = emr_client.run_job_flow(
Name="Test dashboards",
ReleaseLabel='emr-6.2.0',
LogUri=f"s3://my-bucket/emr_logs/",
Instances={
'MasterInstanceType': 'm6g.2xlarge',
'SlaveInstanceType': 'm6g.2xlarge',
'InstanceCount': 2,
'KeepJobFlowAliveWhenNoSteps': True,
'TerminationProtected': False,
'Ec2SubnetId': emr_config['Instances']['Ec2SubnetId'],
'AdditionalMasterSecurityGroups': emr_config['Instances']['AdditionalMasterSecurityGroups']
},
VisibleToAllUsers=True,
JobFlowRole=emr_config['JobFlowRole'],
ServiceRole=emr_config['ServiceRole'],
StepConcurrencyLevel=1,
Applications=[
{"Name":"Spark"},
{"Name": "JupyterHub"},
{"Name": "Ganglia"}
]
)
Run Code Online (Sandbox Code Playgroud)
当我想查看仪表板时,它适用于 jupyterhub/Yarn 资源管理器/...(即
http://master-public-dns-name:8088/https://master-public-dns-name:9433/但是当我尝试访问 Ganglia 时,http://master-public-dns-name/ganglia我得到了403 Forbidden.
是否需要任何额外的设置?
我有10到20个功能与前缀名称相同,我必须根据用户输入调用它们,但我没有得到如何调用它们,我尝试使用下面的方法,但它不工作,谁能告诉我应该怎么做功能调用.
def pattern_1(no):
print('First Pattern with ' +str(no)+ ' rows')
def pattern_2(no):
print('Second Pattern with ' +str(no)+ ' rows')
rows = eval(input('Enter number of rows: '))
pattern_no = eval(input('Enter pattern num [1-10]: '))
cust_fun_name = 'pattern_' + str(pattern_no)
print(cust_fun_name) # Here its print pattern_2 but why function is not get invoked
cust_fun_name()
Run Code Online (Sandbox Code Playgroud)
当我运行上面的代码时,我得到以下错误
Traceback (most recent call last):
File "/home/main.py", line 22, in <module>
cust_fun_name()
TypeError: 'str' object is not callable
Run Code Online (Sandbox Code Playgroud)