【问题标题】:Python Dictionary from some csv files来自一些 csv 文件的 Python 字典
【发布时间】:2021-01-10 21:44:23
【问题描述】:

我有一系列表格,每个表格代表一个日期,表格的每一列代表一个变量:

日期为 2000-11-28 的表 1

 LYR  VAR1  VAR2  VAR3  VAR4 
  1    4.4   3.1   2.2   1.8  
  2    6.3   6.5   2.5   2.7  
  3    8.7   2.4   4.7   7.8  

和表 2 的日期为 2000-11-29

 LYR  VAR1  VAR2  VAR3  VAR4 
  1    2.4   6.3   7.2   2.4  
  2    5.1   7.6   4.3   5.2  
  3    7.6   9.8   2.6   0.1 

我有很多这样的桌子。

我尝试从这些表中创建一个字典来绘制时间序列。

我使用 pandas DataFrame 阅读每一篇:

>> import pandas as pd
>>
>> tb1 = pd.read_csv('data_20001128',sep='\s+')
>> t1  = tb1.to_dict('series')

>> tb2 = pd.read_csv('data_20001129',sep='\s+')
>> t2  = tb2.to_dict('series')

如何合并 t1 和 t2 以在每个字典中有一个唯一的表,如下所示:

>> tables['VAR1'] 
   2000-11-28 2000-11-29
0         4.4        2.4
1         6.3        5.1
2         8.7        7.6

在过程结束时,我需要绘制一个图形,每行都是一条线。我将使用 matplotlib 执行此操作。

谢谢

【问题讨论】:

  • 您可能希望将它们垂直堆叠,并有一个日期列。使用日期列对图表中的线条进行颜色编码。

标签: python python-3.x pandas dictionary


【解决方案1】:

你真的需要字典吗?或者 MultiIndex 数据框适合您:

tables = (pd.concat([tb1,tb2], keys=['2000-11-28', '2000-11-29']).unstack(level=0))

tables['VAR1']

输出:

   2000-11-28  2000-11-29
0         4.4         2.4
1         6.3         5.1
2         8.7         7.6

【讨论】:

  • 谢谢,我认为这个解决方案对我来说很好!我有很多表格,为期 6 个月,我需要绘制一个时间序列。所以我认为这是一个很好的解决方案。
猜你喜欢
  • 2016-03-04
  • 1970-01-01
  • 2014-09-20
  • 1970-01-01
  • 2014-03-20
  • 1970-01-01
  • 1970-01-01
  • 2016-07-09
  • 1970-01-01
相关资源
最近更新 更多