我有一个带有分类变量的数据集,其中包含三个唯一值,"低","中"和"高":
df.CatVar.value_counts()
Out[93]:
Medium 35832
Low 25311
High 12527
Name: CatVar, dtype: int64
Run Code Online (Sandbox Code Playgroud)
我试图绘制唯一值的数量作为条形图.但是,以下代码按顺序给出了条形码["中","低","高"]
df.CatVar.value_counts().plot(kind="bar")
Run Code Online (Sandbox Code Playgroud)
如何更改绘图中条形的顺序?
protobuf 是否支持 python 的相对导入?
我未能成功创建支持此功能的 protobuf 构建脚本。从我的 .proto 文件生成 python 类时,如果我从与创建生成的 .py 文件的文件夹相同的文件夹中启动 python,我只能导入 python 模块。
我已经构建了以下 MVP。理想情况下,我想要一个结构,其中生成的 python 代码放置在一个单独的文件夹(例如./generated)中,然后我可以移动到其他项目中。我已经发布了我已经开始工作的方法,但我希望更有经验的人能够为我指出更好的解决方案。
基本信息:
文件夹结构:
.
|--- schemas
|---- main_class.proto
|---- sub
|----sub_class.proto
|--- generated
Run Code Online (Sandbox Code Playgroud)
syntax = "proto3";
import public "sub/sub_class.proto";
message MainClass {
repeated SubClass subclass = 1;
}
Run Code Online (Sandbox Code Playgroud)
syntax = "proto3";
message LogMessage {
enum Status {
STATUS_ERROR = 0;
STATUS_OK = 1;
}
Status status = 1;
string timestamp = …Run Code Online (Sandbox Code Playgroud) 我有一个数据框,其中的片段如下所示
Time Temperature
19 2019-01-01 11:48:51 23.798
20 2019-01-01 11:48:53 23.832
21 2019-01-01 11:48:54 NaN
22 2019-01-01 11:48:55 23.817
23 2019-01-01 11:48:56 NaN
Run Code Online (Sandbox Code Playgroud)
我想将其重新采样为“2S”,同时确保最后的测量值将替换任何 NaN。
df.resample('2S', on='Time').mean().ffill()
Run Code Online (Sandbox Code Playgroud)
结果的片段如下所示
Temperature
Time
2019-01-01 11:48:52 23.832
2019-01-01 11:48:54 23.817
2019-01-01 11:48:56 23.809
Run Code Online (Sandbox Code Playgroud)
请注意时间戳 t=54s 处的值。我想要的是 t=53s 的温度 23.832,因为这是该时间戳的最后记录值。相反,它填充 t=55s 中的值
这就是我想要的输出。我不在乎它是在奇数秒还是偶数秒采样。
Temperature
Time
2019-01-01 11:48:52 23.798
2019-01-01 11:48:54 23.832
2019-01-01 11:48:56 23.817
Run Code Online (Sandbox Code Playgroud)
编辑1: 回复后,我尝试了以下操作:
df.ffill().resample('2S', on='Time').first()
Run Code Online (Sandbox Code Playgroud)
但这给出了以下结果,其中新的 t=52s 等于旧的 t=t=53s,这不是我追求的行为......
Temperature
Time
2019-01-01 11:48:50 23.798
2019-01-01 11:48:52 23.832
2019-01-01 11:48:54 23.832
2019-01-01 11:48:56 …Run Code Online (Sandbox Code Playgroud)