我有两个相框:

print(d1.head())

         Codes       Prof Amp
477      0.7         3.0  0.724997
478      0.7         3.0  0.736914
479      0.7         3.0  0.612189
480      0.7         3.0  0.684321
481      0.7         3.0  0.950067

print(d1.shape)

(96, 3)

print(d2.head())

       Codes       Prof Amp
0      0.8         5.0  0.747135
1      0.8         5.0  1.370311
2      0.8         5.0  0.759630
3      0.8         5.0  1.125687
4      0.8         5.0  1.910926

print(d2.shape)

(96, 3)

当我使用以下代码时:

dataM = d1.add(d2, fill_value=0)

        Code        Prof  Amp
0        0.8         5.0  0.747135
1        0.8         5.0  1.370311
2        0.8         5.0  0.759630
3        0.8         5.0  1.125687
4        0.8         5.0  1.910926

print(dataM.shape)

[192 rows x 3 columns]

但我的目标是

        Code        Prof  Amp
0        1.5         8.0  1.472132

...... 形状应该相同[96行x 3列]

那我怎样才能做到呢?

先谢谢你.

推荐答案

原因是通过索引值对齐数据-因为不同的索引值DataFrames被级联(并被划分为2):

dataM = d1.add(d2, fill_value=0).div(2)
print (dataM)
     Codes  Prof       Amp
0     0.40   2.5  0.373567
1     0.40   2.5  0.685156
2     0.40   2.5  0.379815
3     0.40   2.5  0.562844
4     0.40   2.5  0.955463
477   0.35   1.5  0.362499
478   0.35   1.5  0.368457
479   0.35   1.5  0.306094
480   0.35   1.5  0.342160
481   0.35   1.5  0.475033

在两个DataFrame中需要相同的索引值,因此将DataFrame.reset_indexdrop=True相加,并将平均值除以2:

dataM = d1.reset_index(drop=True).add(d2.reset_index(drop=True), fill_value=0).div(2)
print (dataM)
   Codes  Prof       Amp
0   0.75   4.0  0.736066
1   0.75   4.0  1.053613
2   0.75   4.0  0.685909
3   0.75   4.0  0.905004
4   0.75   4.0  1.430496

另一个 idea 是转换为numpy数组并除以2:

dataM = d1.add(d2.to_numpy(), fill_value=0).div(2)

Python相关问答推荐

根据给定日期的状态过滤查询集

提取两行之间的标题的常规表达

试图找到Python方法来部分填充numpy数组

类型错误:输入类型不支持ufuncisnan-在执行Mann-Whitney U测试时[SOLVED]

使用索引列表列表对列进行切片并获取行方向的向量长度

如何使用它?

为什么以这种方式调用pd.ExcelWriter会创建无效的文件格式或扩展名?

Pandas—合并数据帧,在公共列上保留非空值,在另一列上保留平均值

我如何根据前一个连续数字改变一串数字?

如何根据一列的值有条件地 Select 前N个组,然后按两列分组?

名为__main__. py的Python模块在导入时不运行'

网格基于1.Y轴与2.x轴显示在matplotlib中

剪切间隔以添加特定日期

搜索按钮不工作,Python tkinter

BeautifulSoup-Screper有时运行得很好,很健壮--但有时它失败了::可能这里需要一些更多的异常处理?

语法错误:文档. evaluate:表达式不是合法表达式

使用polars. pivot()旋转一个框架(类似于R中的pivot_longer)

每次查询的流通股数量

普洛特利express 发布的人口普查数据失败

有没有一种方法可以根据不同索引集的数组从2D数组的对称子矩阵高效地构造3D数组?