我有一个包含两行的数据框,我想将这两行合并为一行.df如下:
PC Rating CY Rating PY HT
0 DE101 NaN AA GV
0 DE101 AA+ NaN GV
Run Code Online (Sandbox Code Playgroud)
我试图创建两个单独的数据帧并将它们与df.merge(df2)合并而没有成功.结果应如下
PC Rating CY Rating PY HT
0 DE101 AA+ AA GV
Run Code Online (Sandbox Code Playgroud)
有任何想法吗?提前谢谢可以df.update成为可能的解决方案吗?
编辑:
df.head(1).combine_first(df.tail(1))
Run Code Online (Sandbox Code Playgroud)
这适用于上面的例子.但是,对于包含数值的列,此方法不会产生所需的输出,例如
PC Rating CY Rating PY HT MV1 MV2
0 DE101 NaN AA GV 0 20
0 DE101 AA+ NaN GV 10 0
Run Code Online (Sandbox Code Playgroud)
输出应该是:
PC Rating CY Rating PY HT MV1 MV2
0 DE101 AA+ AA GV 10 20
Run Code Online (Sandbox Code Playgroud)
上面的公式不会总结最后两列中的值,而是获取数据帧第一行中的值.
PC Rating CY Rating PY HT MV1 MV2 …Run Code Online (Sandbox Code Playgroud) 我编写了一个带有三个参数的函数:
create.template <- function(t.list, x, y){
temp <- cbind(get(t.list[x]), get(t.list[y]), NA)
}
Run Code Online (Sandbox Code Playgroud)
此函数的输出是一个具有 11 列和 17 行的 data.frame。
现在我想用两个列表在函数上创建一个循环,一个用于 x,一个用于 y。从而
x.list <- list(1,2,3)
y.list <- list(4,5,6)
Run Code Online (Sandbox Code Playgroud)
在最后一步,我想建立类似
for (x in x.list and y in y.list){
create.template(t.list, x, y)
}
Run Code Online (Sandbox Code Playgroud)
并可能在一个最终数据帧中按行组合生成的数据帧(3 个数据帧,每个数据帧 11 列)。
我知道您可以在 Python 中使用 zip() 函数执行此操作,然后通过 append() 和 concatenate() 轻松附加结果,但到目前为止我还没有在 R 中找到等效项。任何帮助表示高度赞赏!
我将使用 Reticulate 包在 R 中创建一个 python 接口。为了访问 R 中的 python 函数,需要安装相应的 python 包。
我想到了两个问题:
1)如果使用reticulate包,是否需要安装Anaconda包?或者只安装 python 包就足够了?
2)是否可以在R中安装python包,类似于install.packages(“r_package”)?
有人有这个主题的经验吗?提前致谢!
我有一个包含一列的数据框,我想对其进行排序.键入以下代码为我提供了一个已排序的数据框:
sort = tst.sort(["Mean"], ascending = False)
Mean
SIMULATION
Sim_758 1.351917
Sim_215 1.072942
Sim_830 0.921284
Sim_295 0.870272
Sim_213 0.845990
Sim_440 0.822394
Run Code Online (Sandbox Code Playgroud)
这将是函数的一部分,该函数将应用于其他数据框.出于这个原因,我需要对数据帧进行排序,而不提及列名称"mean".
有没有办法按列的值对数据帧进行排序,只显示列的位置?
我有一个多索引数据框,如下所示:
TQ bought
HT Detailed Instrument
Alternative Investments 359.445000
Alternative Investments 633.670000
Alternative Investments 237.970000
Alternative Investments 40.955000
Run Code Online (Sandbox Code Playgroud)
HT 和Detailed Instrument 是多索引列名,购买的TQ 代表Pivot 表的值。
我想将索引的列名提取为列表,例如: idx_headers = ["HT", "Detailed Instrument"]
我试过了,df.index.levels但这不会产生所需的输出..有什么想法吗?
pandas ×3
dataframe ×2
r ×2
interface ×1
loops ×1
merge ×1
multi-index ×1
python ×1
reticulate ×1
sorting ×1