【问题标题】:Python - Plotting specific time series rangePython - 绘制特定的时间序列范围
【发布时间】:2020-04-13 10:52:21
【问题描述】:

我有这个txt 文件,它包含一列有 456 个元素,前 6 个是 NaN。 我想做的是将这些值与每月日期相匹配,它们从 1980 年 1 月到 2017 年 12 月。

然后我想只选择每年 10 月的月份(38 个值)并用它们制作一个线图。 由于我对 python 还很陌生,这就是我所做的:

import pandas as pd
import matplotlib.pyplot as mplt
import numpy as np

#Read the txt data
input_data = pd.read_csv("D:\PCT\Datos_dummies\D1.txt",header = None )

#Create a list with the dates
dates =pd.date_range("1979-12-10","2017-12-07",freq="MS").strftime("%Y-%b").tolist()

我尝试创建一个包含日期和值的数据框:

#Create a data frame with the input data and the dates
df = pd.DataFrame({'Year':dates,'Ind':input_data},columns=["Year","Ind"])

但我收到此错误:TypeError: 'long' object is not iterable

我不确定我的方法是否正确或太复杂,有人知道如何实现吗?以类似或不同的方式?

【问题讨论】:

    标签: python plot time-series


    【解决方案1】:

    我认为问题在于 input_data 的格式,因为您正在尝试创建一个包含两列“Year”和“Ind”的 DataFrame - 但 input_data 不是一个系列,它是一个 DataFrame。

    如果您只想向从文件中读取的数据框添加一列以添加日期,那么只需将新列添加到您已有的 input_data 数据框:

    import pandas as pd
    import matplotlib.pyplot as mplt
    import numpy as np
    
    #Read the txt data
    input_data = pd.read_csv("D:\PCT\Datos_dummies\D1.txt",header = None )
    
    #Create a list with the dates
    dates =pd.date_range("1979-12-10","2017-12-07",freq="MS").strftime("%Y-%b").tolist()
    
    # Add the dates as a column to the 'input_data' DataFrame
    input_data['Year'] = dates
    

    这对你有用吗?

    如果您想了解更多信息,请发布有关 input_data 内容的更多信息:列和类型是什么。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-09-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-03-16
      • 2021-06-16
      相关资源
      最近更新 更多