【问题标题】:why only 0 values are displaying by using summation equation in python为什么在 python 中使用求和方程只显示 0 个值
【发布时间】:2019-08-18 16:36:50
【问题描述】:

我有一个数据集,其中包含三个输入,名为 X1、X2、X3,带有日期和时间。在这里,对于我的 X3 值,我创建了求和方程,以根据 X3 值每小时创建一个新值。

我的求和方程是:

我想将 A 值放入名为 X 的 numpy 数组中 所以在这里我为求和方程编写了代码来创建 A 的新数据:

Y = df['X3'].astype(float)
X=list()
for _ in range(len(Y)):
A=0
if Y.all() ==5:
    for i in range(1,16):
        A=np.sum(5)*(i)
elif Y.all() ==7:
    for i in range(1,16):
        A=np.sum(7)*(i)
X.append(A)       
print(X)

然后我只得到 0 个值:

我的数据:

date	time	               x3
10/3/2018	6:00:00	        0
10/3/2018	7:00:00         5
10/3/2018	8:00:00	        0
10/3/2018	9:00:00	        7
10/3/2018	10:00:00	0
10/3/2018	11:00:00	0
10/3/2018	12:00:00	0
10/3/2018	13:45:00	0
10/3/2018	15:00:00	0
10/3/2018	16:00:00	0
10/3/2018	17:00:00	0
10/3/2018	18:00:00	0
10/3/2018	19:00:00	5
10/3/2018	20:00:00	0
10/3/2018	21:30:00	7
10/4/2018	6:00:00	        0
10/4/2018	7:00:00	        0
10/4/2018	8:00:00   	5
10/4/2018	9:00:00	        7
10/4/2018	11:00:00	5
10/4/2018	12:00:00	5
10/4/2018	13:00:00	5
10/4/2018	16:00:00	0
10/4/2018	17:00:00	0
10/4/2018	18:00:00	7
10/5/2018	7:00:00	        5
10/5/2018	8:00:00	        0

我想要的输出是:

假设在上午 7:00:00 有 X3 值 5 。因此,然后通过使用求和方程一小时一小时,将使用此求和方程显示一个值,直到 16 小时。

然后假设现在 X3 有 7 个值。因此,然后通过使用求和方程一小时一小时将使用求和方程显示一个值,直到 16 小时。

就像 X3 中的值一样,它将添加求和方程,然后运行代码。

【问题讨论】:

  • 你想每 16 小时或每天得到 X3 的总和吗?
  • 你想要的输出是什么?
  • @politicalscientist 每 16 小时 X3 的总和,是我想要的输出。
  • @DiogenicOrder 在这里我想表明从一小时一小时到 16 小时我的输出值应该计算出来

标签: python-3.x pandas time


【解决方案1】:

不确定它是否是所需的输出,但至少它应该让你开始。

您首先从date 和time 列创建一个日期时间索引;使用resample 来分组你的日期时间索引。

df.index = pd.DatetimeIndex(df['date'].astype(str) + ' ' + df['time'].astype(str))
df.resample('16H').sum()
                    x3
2018-10-03 00:00:00 12
2018-10-03 16:00:00 12
2018-10-04 08:00:00 34
2018-10-05 00:00:00 5

【讨论】:

  • 感谢您的快速回复。我有一个问题如果我想每隔一小时获得一次价值,直到 16 小时,那么如何更改代码?这就是我想使用这个等式的原因。
  • 这里我有另一个输入数据 X1,X2 。所以当我使用这个重采样数据时,其他输入长度会减少。
  • @team 您想要每 16 小时样本的累积总和,也就是 cumsum。如果您想要每 16 小时块的累积总和,则不清楚您是否想要滚动窗口类型的东西。这样做有点复杂,您能否举一个小例子说明您要输入的内容和期望看到的内容。
  • @DiogenicOrder 我在matlab的代码中展示一些例子可以吗?这里我先在matlab代码中尝试,然后我尝试编写与此matlab代码类似的代码。
  • 好吧,我可能无法提供帮助,但了解 Matlab 的人一定可以帮助您。您可能应该使用 matlab 代码编辑原始帖子,以便其他人看到问题。
猜你喜欢
  • 2021-04-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-06-06
  • 1970-01-01
  • 2017-04-18
相关资源
最近更新 更多