python - 从目录中的多个 csv 文件中绘制 2 列
问题描述
我在一个目录中有几个 CSV 文件,包含数百行,如下所示:
1598310002,2020-08-25 00:00:02,27.00,52.00,29.00,61.00,265,0.8833333333333333,457.74644768518516
1598310303,2020-08-25 00:05:03,27.00,52.00,29.00,61.00,119,0.39666666666666667,206.35741240370373
1598310602,2020-08-25 00:10:02,27.00,52.00,29.00,61.00,177,0.59,306.3231369,0.6368975735483338
第一列是Unixtime
,第二列是gmtime
和其他列不同的数字。
这个想法是在每列中显示一个数据图,每次显示date/time
一个 CSV 文件的 x 轴(第 0 列,第 1 列),依此类推,直到给定目录为空。
解决方案
import pandas as pd
import glob
import matplotlib.pyplot as plt
import pylab
columns = pd.read_csv("The_directoryForHeadrs\COLUMNS.csv").columns
AQM1 = glob.glob(r"files_directory/*.csv")
for AQM in AQM1:
df = pd.read_csv(AQM,header=None)
df.columns = columns
df.drop(["unixtime","in","rh","out","rh2","LPO",], axis=1, inplace=True)
df.set_index("gmtime", inplace=True)
#correct the underscores in old datetime format
df.index = [" ".join(val.split("_")) for val in df.index]
df.index = pd.to_datetime(df.index)
df
这是我的代码,当我运行它时,我收到此错误: TypeError Traceback (last recent call last) ~\Anaconda3\lib\site-packages\pandas\core\arrays\datetimes.py in objects_to_datetime64ns(data, dayfirst, yearfirst, utc, errors, require_iso8601, allow_object) 1857 try: -> 1858 values, tz_parsed = conversion.datetime_to_datetime64(data) 1859 # 如果是 tzaware,这些值代表 unix 时间戳,所以我们
pandas_libs\tslibs\conversion.pyx 在 pandas._libs.tslibs.conversion.datetime_to_datetime64()
TypeError:无法识别的值类型:<class 'str'>
在处理上述异常的过程中,又出现了一个异常:
ParserError Traceback (last last call last) in 14 #更正旧日期时间格式中的下划线 15 df.index = [" ".join(val.split("_")) for val in df.index] ---> 16 df.index = pd.to_datetime(df.index) 17 df 18
~\Anaconda3\lib\site-packages\pandas\core\tools\datetimes.py in to_datetime(arg, errors, dayfirst, yearfirst, utc, format, exact, unit, infer_datetime_format, origin, cache) 736 else: 737 convert_listlike =部分(convert_listlike,name=arg.name)-> 738 结果 = convert_listlike(arg,格式)739 elif is_list_like(arg):740 尝试:
~\Anaconda3\lib\site-packages\pandas\core\tools\datetimes.py in _convert_listlike_datetimes(arg, format, name, tz, unit, errors, infer_datetime_format, dayfirst, yearfirst, exact) 438 断言格式为 None 或 infer_datetime_format 439 utc = tz == "utc" --> 440 结果,tz_parsed = objects_to_datetime64ns(441 arg, 442 dayfirst=dayfirst,
~\Anaconda3\lib\site-packages\pandas\core\arrays\datetimes.py in objects_to_datetime64ns(data, dayfirst, yearfirst, utc, errors, require_iso8601, allow_object) 1861 return values.view("i8"), tz_parsed 1862 除外(ValueError,TypeError):-> 1863 raise e 1864 1865 如果 tz_parsed 不是 None:
~\Anaconda3\lib\site-packages\pandas\core\arrays\datetimes.py in objects_to_datetime64ns(data, dayfirst, yearfirst, utc, errors, require_iso8601, allow_object) 1846 1847 尝试:-> 1848 结果,tz_parsed = tslib.array_to_datetime (1849 个数据,1850 个错误=错误,
pandas._libs.tslib.array_to_datetime() 中的 pandas_libs\tslib.pyx
pandas._libs.tslib.array_to_datetime() 中的 pandas_libs\tslib.pyx
pandas_libs\tslib.pyx 在 pandas._libs.tslib.array_to_datetime_object()
pandas_libs\tslib.pyx 在 pandas._libs.tslib.array_to_datetime_object()
pandas_libs\tslibs\parsing.pyx 在 pandas._libs.tslibs.parsing.parse_datetime_string()
~\Anaconda3\lib\site-packages\dateutil\parser_parser.py in parse(timestr, parserinfo, **kwargs) 1372 return parser(parserinfo).parse(timestr, **kwargs) 1373 else: -> 1374 return DEFAULTPARSER。解析(timestr,**kwargs)1375 1376
~\Anaconda3\lib\site-packages\dateutil\parser_parser.py in parse(self, timestr, default, ignoretz, tzinfos, **kwargs) 647 648 if res 是 None: --> 649 raise ParserError("Unknown string format : %s", timestr) 650 651 如果 len(res) == 0:
ParserError:未知字符串格式:gmtime
推荐阅读
- node.js - “多部分:未找到边界”来自 aws s3
- java - 尝试使用 BottomNavigation 但它的位置不考虑 AppBar 的高度,因此它不可见
- azure-devops - AzureDevOps 测试计划进度报告中的详细信息部分不显示测试套件下的测试
- postgresql - 使用 Last_value() 用 Last not null 填充 null 值
- node.js - 猫鼬错误:检测到循环依赖
- apache-flink - Flink 水印策略
- git - 无法使用正则表达式在 git hub 中创建有效的分支名称
- python - 打印div内容python
- linux - 无法退出源文件中的函数
- next.js - Next.js 以线性渐变为背景的图像组件