【发布时间】:2019-02-14 10:18:45
【问题描述】:
我有一个如下数据框:
values = random.sample(range(1, 101), 15)
df = pd.DataFrame({'x': [3, 3, 3, 3, 3, 3, 3, 3, 3, 4, 4, 4, 4, 4, 4], 'n': [100, 100, 100, 'reference', 'reference', 'reference', 500, 500, 500, 100, 100, 100, 'reference', 'reference', 'reference'], 'value': values})
n 列中标记为“参考”的值是参考值,我最终将针对这些值进行绘制。为了解决这个问题,我需要制作一个在不同列中具有参考值的数据框,所以columns = ['x', 'n', 'value', 'value_reference']
值引用是n 的所有值的引用值,只要x 相同。因此,我想制作一个如下所示的数据框:
desired_df = pd.DataFrame({'x': [3, 3, 3, 3, 3, 3, 4, 4, 4], 'n': [100, 100, 100, 500, 500, 500, 100, 100, 100], 'value': [values[i] for i in [0, 1, 2, 6, 7, 8, 9, 10, 11]], 'value_reference':[values[i] for i in [3, 4, 5, 3, 4, 5, 12, 13, 14]]})
我在这里通过硬编码得到了我想要制作可重现示例的结果。但是,我正在寻找执行此操作的正确方法。
如何做到这一点?
谢谢, 杰克
【问题讨论】:
标签: python python-3.x pandas data-manipulation