【发布时间】:2019-05-11 01:20:00
【问题描述】:
我有一个包含五列数据值的 csv 文件。
五列是['A','B','C','D','time']
这里我的“D”列是输出列,“A”是我的第一列。
所以我想应用任何值在“D”列中表示的值应该是“A”列中的下一个输入,时间范围为一小时。
每隔一小时更改一小时值。
我写了一个代码,值正在显示,但我的最后一列输出不是我的第一列第二个输入。
在这里我上传了我的 coda 和 csv 文件。 谁能帮我解决这个问题。
data = pd.read_csv('data20.csv')
data = pd.DataFrame(data,columns=['time', 'A','B','C','D'])
for i in range(1, len(data)):
data.loc[i+1,'A'] = data.loc[i, 'D'] + data.loc[i, 'B'] - data.loc[i, 'C']
在我的 csv 文件中,我为行着色。然后两列中表示相同的颜色意味着两列中表示相同的值。
在我的 csv 第一行中 A 列 63 表示,我的输出是 D 列中的 63。 D 列是我想要的输出。然后在 A 列的第二行中,它表示为 0。但我想将先前的输出值(63)作为 A 列输入应用到第二行。然后该值将按 B 列计算并按 C 列减少,然后我想要的输出值为 60 表示在 D 列中。所以像这样的过程还会继续。 所以在 A 列中的 0 值替换为 D 列中的先前输出值。
【问题讨论】:
-
您的代码完全符合您的要求,那么您在哪里看到不正确的值?在文件中?您是否使用更新的数据框保存了文件?
-
检查也是如此,并且您的代码有效。所需的输出可能会有所帮助。
-
@Sach 是的,我将它保存在数据框中。但仍然根据我的输出,我的第三个输入没有显示为 104。它显示为 62。所以这就是问题所在。
-
@Zanshin 但是根据我的输出,我的第三个输入仍然没有显示为 104。它显示为 62。这就是问题所在。其他一些输入值也没有正确校正
-
上次我会问,请提供所需输出的示例。你的解释没有帮助(至少我)
标签: python-3.x pandas