【问题标题】:Python pandas - show relationship between values of same columnPython pandas - 显示同一列值之间的关系
【发布时间】:2020-05-11 05:14:39
【问题描述】:

假设我有一个由两列组成的 pandas 数据框:动物及其体重。

两排:猫10磅,狗20磅

我想要一个显示所有列值之间关系的输出。在以下所需的输出数据框中,该值是行动物的重量减去列动物的重量。

    cat  dog
cat 0    -10
dog 10   0

我尝试了 pivot_table,但它似乎不是让索引和列具有相同值的正确工具。

pd.pivot_table(df, index=['animal'], columns=['animal copy'], values=['weight'], aggfunc=np.diff)

导致错误。 Np.sum 仅具有相同动物的值。

【问题讨论】:

  • 你能显示 df 和预期的输出吗,不确定 <br/> 显示的是什么
  • 呵呵不知道如何显示表格;摆脱了换行符,出于某种原因需要在帖子预览中使用它
  • 我用我认为你想显示的值编辑你的数据框,你能不能也显示初始df

标签: python pandas


【解决方案1】:

这是一种使用循环手动构造“数据透视表”的方法:

# Starting dataframe:
df = pd.DataFrame(data={"animal": ["dog", "cat", "donkey"], "weight": [20, 10, 200]})

weights = dict(zip(df["animal"], df["weight"]))
animals = weights.keys()
pt = pd.DataFrame(columns=animals, index=animals)
for column in pt.columns:
    pt[column] = weights[column] - pt.index.map(weights)

我确信有更好的 pandas 内置方法可以做到这一点,但我有兴趣看到它。

【讨论】:

  • 非常感谢!我同意,对于内置工具来说似乎足够常见,但找不到。
  • 您可以将循环替换为调用np.subtract.outerpastebin.com/X52JjP3X
猜你喜欢
  • 2020-10-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-09-20
  • 1970-01-01
  • 2021-10-02
  • 1970-01-01
  • 2019-09-16
相关资源
最近更新 更多