- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我正在寻找重新创建 R 脚本的方法,但我对如何在 Python 中重新创建此管道感到困惑。我正在分析不同工厂的累计生产,需要将它们的累计生产时间归一化以便进行比较。
管道看起来像这样:
Norm_hrs <- Cum_df%>%
group_by(Name)%>%
complete(Cum_hrs = seq(0,max(Cum_hrs),730.5))
它需要这样:
Name Cum_Hrs A B C
Factory 1 1 0 1.887861 3.775722
Factory 1 251 0 2104.335728 21932.57871
Factory 1 611 0 2324.586178 37498.99722
Factory 1 1208 0 4361.588197 65235.05541
Factory 2 48 0 1517.840244 6604.770432
Factory 2 163 0 3370.461172 17252.70972
Factory 2 822 0 13284.87786 71918.78308
Factory 2 1541 0 21476.93602 134569.0388
Factory 2 2285 0 32053.99192 225895.1477
Factory 2 3028 0 42299.41357 340798.6151
Factory 2 3699 0 50125.85599 462145.5438
Factory 2 4436 0 56715.74945 584474.9989
然后把它变成这样:
Name Cum_Hrs A B C
Factory 1 1 0 1.887861 3.775722
Factory 1 251 0 2104.335728 21932.57871
Factory 1 611 0 2324.586178 37498.99722
Factory 1 730.5 NA NA NA
Factory 1 1208 0 4361.588197 65235.05541
Factory 2 48 0 1517.840244 6604.770432
Factory 2 163 0 3370.461172 17252.70972
Factory 2 730.5 NA NA NA
Factory 2 822 0 13284.87786 71918.78308
Factory 2 1461 NA NA NA
Factory 2 1541 0 21476.93602 134569.0388
Factory 2 2091.5 NA NA NA
Factory 2 2285 0 32053.99192 225895.1477
Factory 2 2922 NA NA NA
Factory 2 3028 0 42299.41357 340798.6151
这反过来又允许我在 DataFrame 中插入 NA 的值以获得标准化的时间步长
最佳答案
简单地将所有唯一 Name 的顺序数据帧与增量 Cum_Hrs 值连接起来:
seq_df = pd.concat([pd.DataFrame({'Name': i, 'Cum_Hrs': np.arange(0, max(g['Cum_Hrs']), 730.5)})
for i,g in df.groupby(['Name'])])
final_df = (pd.concat([df, seq_df], sort=True)
.sort_values(['Name', 'Cum_Hrs'])
.reset_index(drop=True)
.reindex(columns=df.columns)
)
print(final_df)
# Name Cum_Hrs A B C
# 0 Factory 1 0.0 NaN NaN NaN
# 1 Factory 1 1.0 0.0 1.887861 3.775722
# 2 Factory 1 251.0 0.0 2104.335728 21932.578710
# 3 Factory 1 611.0 0.0 2324.586178 37498.997220
# 4 Factory 1 730.5 NaN NaN NaN
# 5 Factory 1 1208.0 0.0 4361.588197 65235.055410
# 6 Factory 2 0.0 NaN NaN NaN
# 7 Factory 2 48.0 0.0 1517.840244 6604.770432
# 8 Factory 2 163.0 0.0 3370.461172 17252.709720
# 9 Factory 2 730.5 NaN NaN NaN
# 10 Factory 2 822.0 0.0 13284.877860 71918.783080
# 11 Factory 2 1461.0 NaN NaN NaN
# 12 Factory 2 1541.0 0.0 21476.936020 134569.038800
# 13 Factory 2 2191.5 NaN NaN NaN
# 14 Factory 2 2285.0 0.0 32053.991920 225895.147700
# 15 Factory 2 2922.0 NaN NaN NaN
# 16 Factory 2 3028.0 0.0 42299.413570 340798.615100
# 17 Factory 2 3652.5 NaN NaN NaN
# 18 Factory 2 3699.0 0.0 50125.855990 462145.543800
# 19 Factory 2 4383.0 NaN NaN NaN
# 20 Factory 2 4436.0 0.0 56715.749450 584474.998900
类似的过程可以在 base R 中处理。通常将 base R(非 tidyverse)翻译成 Pandas 更容易:
seq
==> np.arange
by
==> pd.DataFrame.groupby
data.frame
==> pd.DataFrame
do.call
+ rbind
==> pd.concat
顺序
==> pd.sort_values
row.names=NULL
==> pd.reset_index()
R
# BUILD SEQUENCE DATA FRAME
seq_df = do.call(rbind, by(df, df$Name, function(sub)
data.frame(Name = sub$Name[[1]],
Cum_Hrs = seq(0, max(sub$Cum_Hrs), 730.5),
A = NA, B = NA, C = NA))
)
# CONCATENATE REFERENCING EVERY COLUMN
final_df = rbind(df, seq_df)
# SORT ROWS AND RESET ROW NAMES
final_df = with(final_df, data.frame(final_df[order(Name, Cum_Hrs),], row.names=NULL))
final_df
关于R 中 tidyr::complete 的 Python 等价物,允许指定附加值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55855041/
我有一个返回 future 的函数,该函数取决于要解决的回调结果: Future connectSocket(String email, String password, {Function o
我正在尝试链接两个返回 Completable 的响应式调用在 android 上使用改造: val userRequest = ... val languageRequest = ... retur
我正在尝试将一些数据保存在数据库中。对于添加方法,我使用 Completable。在我保存一个实体 - 客户之后,我想保存一个天数列表,但只有在客户被保存之后。这是我现在的代码。 mDatabaseM
我是 RxJava 的新手,遇到了以下问题: 我有两个 Completable 对象来存储一些数据。我想触发第一个,然后仅在第一个成功完成后才启动第二个。对第二个 Completable 的调用应该被
我正在尝试从两个不同的文件中读取数据,一个是 csv 格式,另一个文件是 xml 数据。使用completeFuture 我正在尝试从两个文件异步读取数据。我收到类型转换错误。请让我知道我是否遵循正确
我有以下人员类别: class Person { String name; String city; public void setInfo(PersonInformation
我正在尝试这个: var notifications = $( "#notifications" ); notifications.fadeOut("slow") .complete(func
我发现 Bash shell 支持一种不同于“传统”自动完成的自动完成类型,所有可能性都列在下一行。 使用“传统的”自动完成,如果我键入 ch 然后按 Tab 键,我会得到如下信息: $ ch cha
我是 rxjava/rxkotlin/rxandroid 的初学者。 我需要按顺序处理三个不同的异步调用。问题是第一步返回 Single ,第二个Completable第三个又是Completable
默认情况下,在 TextMate 中按 Esc 会循环执行可能的补全(除了关闭对话框之外),这可能会在文档中放入不需要的字符,特别是如果您习惯于在大多数文本编辑器中使用 Esc 作为安全键的话。 (事
我知道 pull complete 在之后到达 download complete 在生命周期中,但我有兴趣了解它们之间的区别。我尝试在互联网上搜索,但找不到任何清楚解释这些差异的内容。 最佳答案 拉
以下代码似乎永远不会工作,因为组似乎没有终止,并且 takeLast() 不知道最后是什么: observableSequence .groupBy { $0.key } .map { gro
我是 ido-mode 的忠实粉丝,以至于我想用它来做 describe-function 之类的事情或 find-tag等等,而无需编写类似“我可以在 Emacs 中搜索标签的 ido-mode-s
我们什么时候应该使用 Completable.fromAction()我们什么时候应该使用 Completable.fromCallable()是否有特定的用例 从文档看来,两者都做同样的事情,很难注
我有以下gulpfile.js,我通过命令行执行gulp消息: var gulp = require('gulp'); gulp.task('message', function() { cons
我在我的 .vimrc 文件中设置了 omnifuc : setlocal omnifunc = javacomplete#complete 然后当我编辑任何文件时出现异常: E518: Unknow
我如何将 Single 链接到 Completable,以便在 Completable 完成时订阅它? repository.downloadUser() 是 Single。 根据调试,似乎此方法中的
在bash中,默认情况下,按Tab键将显示当前目录中的所有文件和目录。例如:。Cat a将显示类似aFile.txt apples.png aDirectory/的内容。如果您随后完成了a目录,它将显
在bash中,默认情况下,按Tab键将显示当前目录中的所有文件和目录。例如:。Cat a将显示类似aFile.txt apples.png aDirectory/的内容。如果您随后完成了a目录,它将显
我错过了什么?示例使用 min.js。 bundle.min.js 有更多代码,但我找不到该额外代码的描述...... https://getbootstrap.com/docs/4.0/gettin
我是一名优秀的程序员,十分优秀!