【问题标题】:How to do not loose rows with NaN when stack/unstak?堆叠/取消堆叠时如何不丢失带有 NaN 的行?
【发布时间】:2020-11-28 16:18:22
【问题描述】:

我有一组从 1945 年到 2020 年的数据,用于两个国家生产的一系列材料。为了创建一个数据框,我连接了不同的 df。

df = pd.concat([ProdCountry1['Producta'], [ProdCountry2['Producta'], [ProdCountry1['Productb'],  [ProdCountry2['Productb'], ...] ...)

axis=1,键名等。

我得到了这种表:

然后我堆叠此数据框以获取行索引(年)中的 NaN,但随后我丢失了 1946/1948/1949 年,它们仅包含 NaN。

df = df.stack()

这是我拆开堆叠时得到的那种 df:

所以,我的问题是:如何避免在我的 df 中使用 NaN 行丢失年份?我需要它们稍后在我的笔记本中进行插值和工作。

提前感谢您的帮助。

【问题讨论】:

    标签: python pandas


    【解决方案1】:

    堆栈方法有一个dropna 参数,将其传递为false

     DataFrame.stack(level=- 1, dropna=True)
    

    参见pandas.DataFrame.stack 的文档

    【讨论】:

      【解决方案2】:

      让我们试试dropna

      df = df.dropna(how='all')
      

      【讨论】:

        猜你喜欢
        • 2019-07-30
        • 2010-11-18
        • 2019-01-08
        • 2023-01-11
        • 1970-01-01
        • 1970-01-01
        • 2017-03-21
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多