python - Python - 绘制特定的时间序列范围
问题描述
我有这个 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
我不确定我是否正在做正确的方法或者它太复杂了,有谁知道如何做到这一点?以相似或不同的方式?
解决方案
我认为问题在于 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 内容的更多信息:什么是列和类型。
推荐阅读
- javascript - 为什么我的文本没有出现在 jsPdf Autotable 上方?
- apache - Apache 2.4 启动/停止在使用 Shibboleth SP 3.2.0 配置后抛出“未定义符号:ber_sockbuf_io_udp”错误
- sql - 如何将 sql 列与 sparksql 中的另一列相同?
- flutter - 颤振列表视图卡增量与块
- go - 如何在不返回任何值的情况下断开 net/http https golang 连接?
- php - 无法使用 laravel 将值传递到数据库
- stm32 - 如何为可变长度数据实现 UART Rx 中断程序?
- sql-server - 有没有办法自动插入在链接服务器上更新的行?
- ios - 传入 DispatchQueue 后变量变为 0(在模拟器中工作。在实际设备中为 0)
- r - 总结独特价值