python - 如何划分具有不同列长度的两个dfs?
问题描述
想象一下,您有以下 df:
lines
+----+-----------------+-----------------+-----------------+-----------------+-----------------+
| | line amount#1 | line amount#2 | line amount#3 | line amount#4 | line amount#5 |
|----+-----------------+-----------------+-----------------+-----------------+-----------------|
| 0 | 250 | 250 | 250 | 250 | 250 |
| 1 | 250 | 250 | 250 | 250 | 250 |
| 2 | 14 | 7.35 | 9.9 | 27.75 | nan |
+----+-----------------+-----------------+-----------------+-----------------+-----------------+
perc
+--------------------+--------------------+--------------------+--------------------+--------------------+--------------------+
| btw-percentage#1 | btw-percentage#2 | btw-percentage#3 | btw-percentage#4 | btw-percentage#5 | btw-percentage#6 |
|--------------------+--------------------+--------------------+--------------------+--------------------+--------------------|
| 10 | nan | nan | nan | nan | nan |
| nan | nan | nan | nan | nan | nan |
| nan | nan | nan | nan | nan | nan |
+--------------------+--------------------+--------------------+--------------------+--------------------+--------------------+
update = lines.to_numpy() / perc.to_numpy()
划分时出现以下错误:
ValueError: operands could not be broadcast together with shapes (3,5) (3,6)
这是合乎逻辑的,因为列的形状不同。
我想根据行列的长度修剪 perc 列的列形状。所以这将成为#5。用 numpy 可以吗?除法后所需的输出:
+----+-----------------+-----------------+-----------------+-----------------+-----------------+
| | line amount#1 | line amount#2 | line amount#3 | line amount#4 | line amount#5 |
|----+-----------------+-----------------+-----------------+-----------------+-----------------|
| 0 | 25 | 250 | 250 | 250 | 250 |
| 1 | 250 | 250 | 250 | 250 | 250 |
| 2 | 14 | 7.35 | 9.9 | 27.75 | nan |
+----+-----------------+-----------------+-----------------+-----------------+-----------------+
请帮忙!
解决方案
尝试这个,
for x, y in zip(lines.columns, perc.columns):
lines[x] = lines[x] / perc[y].fillna(1)
推荐阅读
- html - 将较长的桌子包裹在相邻的较短的桌子下
- css - 当条件为假时,网格模板区域会增长
- javascript - 如何在 finally 中执行另一个承诺?
- javascript - 如何在没有事件的情况下执行功能?
- regex - 如何在Wget的--accept-regex中使用和'OR'正则表达式
- python - 关于使用 fig.add_trace(go.Indicator(); 的间距的问题;如何添加足够的间距以使每个无花果的标题不重叠?
- c - 为什么 scanf("%[^\n]s", ...) 不捕获带空格的字符串?
- r - 使用networkDynamic的base.net大小错误
- string - 使用 io::stdin().read_line 到枚举的字符串导致错误
- windows - 从 tasklist 命令获取 PID