首页 > 解决方案 > 从目录中的多个 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 列),依此类推,直到给定目录为空。

标签: pythonpandascsvmatplotlib

解决方案


    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


推荐阅读