【发布时间】:2016-03-09 20:49:43
【问题描述】:
请原谅这个问题的任何幼稚。在过去的几个月里,我一直在积极尝试形成对编程的基本理解。有很多空白,所以我可能不知道我不知道什么。
我正在使用的数据集目前在 excel 中,因此 VBA 可能是一个不错的选择,但是我想借此机会使用 Python。我会将数据导入为 CSV,然后对其进行操作。这似乎非常适合熊猫数据框...
我有一个对象列表,每个对象都有几个命名值:
Object Name | Value Name | Value |
|:-----------|------------:|:------------:|
| a1 | top1 | 20
| a1 | top2 | 30
| a1 | top3 | 65
| a2 | top1 | 28
| a2 | top2 | 32
| a3 | top1 | 89
| a3 | top2 | 120
| a3 | top3 | 160
...
在单独的列表中,每个对象都有一个附加值
Object Name | Value Name | Value |
|:-----------|------------:|:------------:|
| a1 | base | 99
| a2 | base | 250
| a3 | base | 600
| a4 | base | 87
| a5 | base | 1202
| a6 | base | 58
...
我想为每个对象附加新的值/值名称。
输出应如下所示(星号表示附加值):
Object Name | Value Name | Value |
|:-----------|------------:|:------------:|
| a1 | top1 | 20
| a1 | top2 | 30
| a1 | top3 | 65
| a1 * | base | 99
| a2 | top1 | 28
| a2 | top2 | 32
| a2 * | base | 250
| a3 | top1 | 89
| a3 | top2 | 120
| a3 | top3 | 160
| a3 * | base | 600
粗略地说,这是我想要完成的:
for each object in objects:
if df_Objects[ObjectName] = df_Object_Base[ObjectName]:
df_Objects = df_Objects + {Value_Name, Value}
我最近才成功安装了 pandas,但我并没有把它用得太多。最终目标是将修改后的数据导出为 CSV。如果您有更简单的方法,我会很乐意看到它。
【问题讨论】:
-
听起来您正在尝试基于一列合并两个数据框,尽管并不完全清楚。如果您要包含一个输出应该是什么样子的示例,它可能会澄清这个问题。
-
@johnchase 问题已被编辑以显示所需的输出
标签: python excel list pandas append