【问题标题】:Python Panda TIme series re samplingPython Panda TIME 系列重新采样
【发布时间】:2015-05-30 18:34:20
【问题描述】:

我正在用 panda 编写脚本,但我无法提取我想要的正确输出。这是问题:

我可以从 CSV 文件中读取这些数据。在这里你可以找到表结构

http://postimg.org/image/ie0od7ejr/

我想要上表数据的这个输出

Month     Demo1 Demo 2
June 2013 3     1    
July 2013 2     2

在 Demo1 和 Demo2 列中,我想计算以 u 开头的常规条目和条目。六月共有 3 个常规条目,其中 1 个条目以 u 开头。

到目前为止,我已经编写了这段代码。

   import sqlite3
   from pylab import *       
   import numpy as np
   import matplotlib.pyplot as plt
   import matplotlib.dates as mdates
   import datetime as dt

   conn = sqlite3.connect('Demo2.sqlite')
   df = pd.read_sql("SELECT * FROM Data", conn)
   df['DateTime'] = df['DATE'].apply(lambda x: dt.date.fromtimestamp(x))

   df1 = df.set_index('DateTime', drop=False)

感谢您的帮助。最终结果将是条形图。我可以从上面提到的输出中绘制图表。

【问题讨论】:

  • 请发布您尝试过的原始输入数据和代码

标签: python time-series resampling


【解决方案1】:

对于resample,你可以像这样定义两个聚合函数:

def countU(x):
    return sum(i[0] == 'u' for i in x)

def countNotU(x):
    return sum(i[0] != 'u' for i in x)

print df.resample('M', how=[countU, countNotU])

或者,考虑groupby

【讨论】:

  • 我没有得到你的答案
  • @user3930865 除非您包含一些原始输入数据或更多代码,否则很难进一步帮助您。
  • 当你尝试我给你的东西时会发生什么?它会产生错误的结果吗?它会导致错误吗?请提供具体反馈,否则我无法知道如何修改我之前的答案。
  • 你的答案中的 x 是什么?
  • 我定义了两个聚合函数。然后我给他们打电话resample。当您调用resample 时,数据框的列会以x 的形式传递给聚合器,然后函数会返回有多少列元素以“u”开头或不以“u”开头。
猜你喜欢
  • 2020-05-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-01-04
相关资源
最近更新 更多