我需要创建一些定时数据的箱线图,其中一个方框代表每个月的原始数据。像这样的东西:
现在让我们尝试使用 Pandas 创建它:
matplotlib inline
import numpy as np
import pandas as pd
N_DAYS = 100
dates = pd.date_range('20130101', periods=N_DAYS)
df = pd.DataFrame(np.random.randn(N_DAYS,1), index=dates)
Run Code Online (Sandbox Code Playgroud)
我可以按月(代码M)重新采样并应用聚合函数,例如median:
df.resample('M').median()
Run Code Online (Sandbox Code Playgroud)
但是,我无法创建数据的箱线图:
df.resample('M').boxplot();
Run Code Online (Sandbox Code Playgroud)
这将创建一个代表每个月均值分布的框。
另外,我收到以下警告:
FutureWarning:
.resample() is now a deferred operation
You called boxplot(...) on this deferred object which materialized it into a dataframe
by implicitly taking the mean. Use .resample(...).mean() instead
Run Code Online (Sandbox Code Playgroud)
如何为每个月创建原始数据的箱线图?
我有一个 MultiIndex pandas DataFrame,需要更改 0 级索引值。当前的 DataFrame 有一个名为 的 MultiIndex (test, time)。
如何将字符串“Test 4”(位于索引的顶层)设置为其他字符串?
test为了额外加分,我的许多 DataFrame 在索引级别中将具有多个值。我可以使用名称列表一次重命名多个名称吗?
感谢您的任何帮助。
(编辑:)我的数据是:
test time force displacement minutes event
'Test 4' 0.0000 .1202 0 0.00000 False
'Test 4' 0.0012 .0901 0 0.00002 False
'Test 4' 0.0018 .0901 0 0.00003 False
'Test 4' 0.0030 .0901 0 0.00004 False
'Test 4' 0.0042 .0901 0 0.00005 False
'Test 5' 0.0000 .1203 0 0.00000 False
'Test 5' 0.0012 .0901 0 0.00002 False
Run Code Online (Sandbox Code Playgroud)
多索引设置为['test', …
我有一个queue.Queue像这样的子类:
class SetQueue(queue.Queue):
"""Queue which will allow a given object to be put once only.
Objects are considered identical if hash(object) are identical.
"""
def __init__(self, maxsize=0):
"""Initialise queue with maximum number of items.
0 for infinite queue
"""
super().__init__(maxsize)
self.all_items = set()
def _put(self):
if item not in self.all_items:
super()._put(item)
self.all_items.add(item)
Run Code Online (Sandbox Code Playgroud)
我正在尝试使用mypy进行静态类型检查。在这种情况下,SetQueue应该采用通用对象T。这是我到目前为止的尝试:
from typing import Generic, Iterable, Set, TypeVar
# Type for mypy generics
T = TypeVar('T')
class SetQueue(queue.Queue):
"""Queue which will allow a given …Run Code Online (Sandbox Code Playgroud) 我正在尝试在我们的Dropbox Business帐户中列出团队成员的文件夹。
https://api.dropboxapi.com/2/files/list_folder要求我们添加Dropbox-API-Select-User标题,但它似乎不起作用。
到目前为止,这是我的代码:
import requests
url = "https://api.dropboxapi.com/2/files/list_folder"
headers = {
"Authorization": "Bearer MY_TOKEN",
"Dropbox-API-Select-User": "dbid:ACCOUNT_ID"
}
data = {
"path": "/",
}
r = requests.post(url, headers=headers, json=data)
r.raise_for_status()
print(r.json())
Run Code Online (Sandbox Code Playgroud)
请注意,json=函数中的post()参数将内容类型设置为,application/json因此应该正确。
上面的代码引发了一个异常:
requests.exceptions.HTTPError: 400 Client Error: Bad Request for url: https://api.dropboxapi.com/2/files/list_folder
Run Code Online (Sandbox Code Playgroud)
我尝试使用团队成员ID(bdmid:)而不是帐户ID,但遇到相同的错误。
你知道怎么了吗
在此先感谢您的帮助。
我正在使用Python 3.6,如果有什么区别。
我正在尝试编写一个函数,它接受一些数字并计算平均值.
我的代码是:
extern crate num;
use num::{FromPrimitive, Zero};
use std::ops::{Add, Div};
fn main() {
let mut numbers = [10, -21, 15, 20, 18, 14, 18];
let err = "Slice is empty.";
println!("Mean is {:.3}", mean(&numbers).expect(err));
}
fn mean<T>(numbers: &[T]) -> Option<f64>
where
T: Copy + Zero + Add<T, Output = T> + Div<T, Output = T> + FromPrimitive,
{
match numbers.len() {
0 => None,
_ => {
let sum = numbers.iter().sum: ();
let length …Run Code Online (Sandbox Code Playgroud) 我正在尝试使用logging.config.dictConfig()配置我的Python日志记录模块
但是,我的JSON文件似乎已损坏,即使它作为Python dict false更改为False,所以我不认为这是一个语法错误.
我的代码说:
import json
with open('logging_config.json') as f:
d = json.load(f)
Run Code Online (Sandbox Code Playgroud)
我的logging_config.json档案是:
{
"version": 1,
"disable_existing_loggers": false,
"formatters": {
"standard": {
"format": "[%(levelname)s] %(name)s: %(message)s"
},
},
"handlers": {
"default": {
"level": "DEBUG",
"formatter": "standard",
"class": "logging.StreamHandler",
},
},
"loggers": {
"": {
"handlers": ["default"],
"level": "INFO",
"propagate": true
},
"myfunc": {
"handlers": ["default"],
"level": "DEBUG",
"propagate": false
},
}
}
Run Code Online (Sandbox Code Playgroud)
当我运行这个简单的程序时,我收到一个错误: json.decoder.JSONDecodeError: Expecting property name enclosed in double quotes: …