【发布时间】:2019-11-19 20:09:30
【问题描述】:
我对 Pandas 还比较陌生,我不知道我最适合使用哪些功能来获得答案。我已经查看了 pivot、pivot_table、group_by 和聚合,但我似乎无法让它完成我需要的工作。很可能是用户错误,对此我深表歉意!
我有这样的数据:
创建df的代码:
import pandas as pd
df = pd.DataFrame([
['1', '1', 'A', 3, 7],
['1', '1', 'B', 2, 9],
['1', '1', 'C', 2, 9],
['1', '2', 'A', 4, 10],
['1', '2', 'B', 4, 0],
['1', '2', 'C', 9, 8],
['2', '1', 'A', 3, 8],
['2', '1', 'B', 10, 4],
['2', '1', 'C', 0, 1],
['2', '2', 'A', 1, 6],
['2', '2', 'B', 10, 2],
['2', '2', 'C', 10, 3]
], columns = ['Field1', 'Field2', 'Type', 'Price1', 'Price2'])
print(df)
我正在尝试获取这样的数据:
虽然我的最终目标是最终为 A 列一列,为 B 列一列,为 C 列一列。因为 A 将使用 Price1 而 B & C 将使用 Price2。
我不希望获得价格的最大值或最小值或平均值或总和,因为理论上(尽管不太可能)对于相同的字段和类型可能有两个不同的 Price1。
在 Pandas 中使用什么功能可以满足我的需求?
【问题讨论】:
-
请分享数据帧的样本而不是图像
-
我不能提供实际数据作为其机密,我不是所有者,但这是数据的格式,尽管字段的层数不止 2 层。或者你是说你想要相同的数据,但我要提供将虚拟数据推送到这种格式的代码?
-
我们想要的是可复制的数据。要么是一些 Python 代码来创建和填充数据帧(最好的,因为我们可以确定 dtypes),或者至少是 something 可以用
pd.read_clipboard复制和粘贴。你应该阅读How to make good reproducible pandas examples -
好的,谢谢,我会尽快编辑和添加。
标签: python pandas aggregate pandas-groupby