【问题标题】:Pandas Sub-Heading熊猫子标题
【发布时间】:2020-07-25 22:48:17
【问题描述】:

我有一个关于使用 Pandas 和 Python 创建 DataFrame 的问题。所以我正在抓取一个具有“主标题”然后是子标题的数据。

就像这个: weather temprature

当我 scrape 它时,基本上我会有一个字符串,我能够分离数据,但现在我想在数据框中构造它与源中的完全相同(图片).. 那么有没有办法使用 pandas 构造数据并告诉它我有一个主列名,然后我有一个子列名,然后数据将位于每个子列名下。

我试图制作一个嵌套字典,但结果并不如我所料: the result

我将子列名称改为索引。

【问题讨论】:

  • 将代码、错误和数据添加为文本,而不是屏幕截图,因为 Stack Overflow Discourages Screenshots。这个问题很可能会被否决并关闭。您不鼓励提供帮助,因为没有人愿意重新输入您的数据或代码,而且屏幕截图通常难以辨认。 edit问题并添加文字。

标签: python python-3.x pandas


【解决方案1】:

此问题已在此处得到解答并提供了解决方案:

Pandas how to read sub headers

看看他们操纵了数据帧,使子标题成为另一个索引值。然后访问该列,然后执行选择

df[('Header1', 'Subheader1-1')]

作为替代方案,您可以使用元组字典来获得相同的结果,这会更容易/更清晰。这是来自熊猫文档

import pandas as pd

df = pd.DataFrame({('a', 'b'): {('A', 'B'): 1, ('A', 'C'): 2},('a', 'a'): 
{('A', 'C'): 3, ('A', 'B'): 4},('a', 'c'): {('A', 'B'): 5, ('A', 'C'): 6},
('b', 'a'): {('A', 'C'): 7, ('A', 'B'): 8},('b', 'b'): {('A', 'D'): 9, ('A',
'B'): 10}})

print(df)

       a              b      
       b    a    c    a     b
A B  1.0  4.0  5.0  8.0  10.0
  C  2.0  3.0  6.0  7.0   NaN
  D  NaN  NaN  NaN  NaN   9.0

【讨论】:

    猜你喜欢
    • 2019-01-23
    • 2019-09-24
    • 1970-01-01
    • 2016-06-05
    • 1970-01-01
    • 2023-02-21
    • 2020-01-10
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多