如何在不丢失结构的情况下更改csv文件不同列的值?

2024-10-02 10:20:16 发布

您现在位置:Python中文网/ 问答频道 /正文

我想更改csv文件中某些列的值

这是我的csv文件:

1.csv

,euler x,euler y,euler z,accel x,accel y,accel z,force heel,force metatarsus,force toe
830,202.12,20.880000000000013,-38.39,0.11,-1.41,-0.04,3.0,5.666666666666667,6.666666666666667
831,202.06,21.000000000000018,-38.010000000000005,0.14,-1.32,-0.05,2.75,5.666666666666667,6.666666666666667
832,202.06,21.000000000000018,-38.010000000000005,0.22,-1.21,-0.14,2.75,5.666666666666667,7.0
833,202.0,21.320000000000014,-37.45,0.23,-1.13,-0.18,2.75,6.0,7.333333333333333
834,202.0,21.320000000000014,-37.45,0.23,-1.13,-0.18,2.25,6.333333333333333,7.0
...,...,...,...,...,...,...,...,...,...

现在我想将列“accel x”、“accel y”和“euler y”乘以-1。 我如何才能做到这一点,我最终得到一个新的csv文件,就像这样1\u stride\u new.csv

,euler x,euler y,euler z,accel x,accel y,accel z,force heel,force metatarsus,force toe
830,202.12,-20.880000000000013,-38.39,-0.11,1.41,-0.04,3.0,5.666666666666667,6.666666666666667
831,202.06,21.000000000000018,-38.010000000000005,-0.14,1.32,-0.05,2.75,5.666666666666667,6.666666666666667
832,202.06,-21.000000000000018,-38.010000000000005,-0.22,1.21,-0.14,2.75,5.666666666666667,7.0
833,202.0,-21.320000000000014,-37.45,-0.23,1.13,-0.18,2.75,6.0,7.333333333333333
834,202.0,-21.320000000000014,-37.45,-0.23,1.13,-0.18,2.25,6.333333333333333,7.0
...,...,...,...,...,...,...,...,...,...

我已经这样试过了:

import pandas as pd

data = pd.read_csv(r"1_stride.csv")
((daten['accel x'])*(-1)).to_csv(r"1_Stride _new.csv", index=False, line_terminator = ',\n')

但是我得到了以下新的csv文件:

-0.11,
-0.14,
-0.22,
-0.23,
-0.23,
.....,

然而,不幸的是,这不是我想要的输出。“表格标题”中的其他列和标签丢失。 我不知道如何制作它,以便获得我已经展示过的输出(请参见上面的1\u stride\u new.csv

谢谢你帮助我

编辑

我是这样做的:

import pandas as pd

data=pd.read_csv(r"1_Stride.csv")

data[["accel x","accel y","euler y"]] = data[["accel x","accel y","euler y"]].mul(-1)
data.to_csv(r"1_Stride_new.csv")

但随后我得到了新csv文件的输出,如下所示:

,Unnamed: 0,euler x,euler y,euler z,accel x,accel y,accel z,force heel,force metatarsus,force toe
0,830,202.12,-20.880000000000013,-38.39,-0.11,1.41,-0.04,3.0,5.666666666666668,6.666666666666668
1,831,202.06,-21.000000000000018,-38.01000000000001,-0.14,1.32,-0.05,2.75,5.666666666666668,6.666666666666668
2,832,202.06,-21.000000000000018,-38.01000000000001,-0.22,1.21,-0.14,2.75,5.666666666666668,7.0
3,833,202.0,-21.32000000000001,-37.45,-0.23,1.13,-0.18,2.75,6.0,7.333333333333332
4,834,202.0,-21.32000000000001,-37.45,-0.23,1.13,-0.18,2.25,6.333333333333332,7.0
5,835,201.94,-21.440000000000012,-37.2,-0.2,1.03,-0.19,2.5,6.333333333333332,7.333333333333332

...,...,...,...,...,...,...,...,...,...,...

出了点问题。有人能告诉我如何解决这个问题吗(第一列必须消失或者不应该像这样)?新的csv文件看起来应该与第一个相同,但具有更改的值


Tags: 文件csvimportpandasnewdatapdtoe

热门问题