【发布时间】:2019-11-23 07:42:53
【问题描述】:
假设我有一个包含三个输入的数据集:
x1 x2 x3
0 a b c
1 d e f
2 g h i
3 j k l
4 m n o
5 p q r
6 s t u
:
:
0,1,2,3 是时间,x1,x2,x3 是测量的输入。所以这里每隔一小时测量一次 x1 输入。 x2 和 x3 将在不同的时间测量。我需要做的是,我想写下在 x1、x2、x3 中测量的值将加减值等于下一次输入的 x1 值 所以在这里我想做的是:
x1 x2 x3 y
0 a b c a+b-c=d
1 d e f d+e-f=g
2 g h i g+h-i=j
3 j k l j+k-l=m
4 m n o m+n-o=p
5 p q r p+q-r=s
6 s t u s+t-u=v
:
:
这里是根据我的 csv 文件的实际数据:
X1 x2 x3 y
0 63 0 0 63+0-0=63
60(min) 63 0 2 63+0-2 =104
120 104 11 0 104+11-0=93
180 93 0 50 93+0-50=177
240 177 0 2 177+0-2=133
300 133 0 0 133+0-0=next value of x1
我尝试了 shift 方法,但它并不适合我想要的。我尝试了另一种方法,它奏效了,但没有如我所愿。这里我上传代码。
Code :
data = pd.read_csv('data6.csv')
i=0
j=1
while j < len(data):
j=data['x1'][i] - data['x2'][i] + data['x3'][i]
i+=1
j!=i
print(j)
这是可行的,但它只显示一个数据
63
在我的 csv 文件中,这是 x1 输入的第二个输入值。 我想编写这段代码,并读取上面显示的值。 谁能帮我解决这个问题?
【问题讨论】:
-
索引为1的行有
d+e+f!=g,应该是d+e-f!=g吗?如果不是,请解释一下为什么是第二个+? -
另外,我认为您应该编辑您的示例以包含真实数据,或者至少与您的真实数据相似(类型)
-
@Adam.Er8 抱歉,我更正了。它是 d+e-f !=g。我将使用我的 csv 数据进行编辑。给我一些时间。
-
@Adam.Er8I 编辑了我的问题。现在您可以再次检查。谢谢
-
好吧,看来你确实需要字符串连接,看看 U10-Forward 的回答,它应该可以工作。只是 1 个问题,
63+0-0!=63显然不是真的,你确定所有行都需要!=吗?不依赖于价值?
标签: python-3.x pandas time