【发布时间】:2021-06-10 01:02:41
【问题描述】:
我正在编写一个脚本来做一些定价。有一个包含数量列表的数据框:
| Name | Volume | Area |
|---|---|---|
| Wood | 133 | 256 |
| Steel | 55 | 330 |
(还有 1800 多行类似的行)
我需要做的是在 df 中创建第三列,其中包含“真实”数量。 几乎,在某些材料上是体积,在其他材料上是面积。
| Name | Volume | Area | Qty |
|---|---|---|---|
| Wood | 133 | 256 | 133 |
| Steel | 55 | 330 | 330 |
到目前为止,我一直在考虑创建一个字典:
my_dict = {'Wood':'Volume', 'Steel':'Area'}
使用地图(或替换)我将其放入 df 的列中:
| Name | Volume | Area | Datafield |
|---|---|---|---|
| Wood | 133 | 256 | Volume |
| Steel | 55 | 330 | Area |
现在,根据 Datafield 的说明,我将如何将数量放入 Quantity 列?
我试过了
df['数量'] = df[df['Datafield']]
但是,它崩溃了,我被卡住了。
【问题讨论】:
-
请提供制作 DF 的代码。对于minimal reproducible example 目的而言,表格几乎与图像一样无用
-
@MadPhysicist 你可以
pd.read_clipboard,不是吗?虽然我听说 Colab 有一些问题。 -
numpy:
df['Qty'] = df.to_numpy()[df.index,df.columns.get_indexer(df['Datafield'])]