Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/311.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在Python中移动数据帧列的数字或字符串中的位置点?_Python_Pandas_Dataframe_Decimal_Stock - Fatal编程技术网

如何在Python中移动数据帧列的数字或字符串中的位置点?

如何在Python中移动数据帧列的数字或字符串中的位置点?,python,pandas,dataframe,decimal,stock,Python,Pandas,Dataframe,Decimal,Stock,首先,我为我糟糕的解释道歉,我真的想把成千上万的数据框变成几十个,因为csv上的股价数据是错误的。最后,感谢@Vincent的回复,我终于在结束专栏中解决了这个问题,尽管我认为这仍然不是最正统和干净的方式。非常感谢您的回复 Open High Low Close Adj Close \ Date

首先,我为我糟糕的解释道歉,我真的想把成千上万的数据框变成几十个,因为csv上的股价数据是错误的。最后,感谢@Vincent的回复,我终于在结束专栏中解决了这个问题,尽管我认为这仍然不是最正统和干净的方式。非常感谢您的回复

                   Open         High          Low        Close    Adj Close  \
Date                                                                          
2014-10-31    25.350000    25.350000    25.350000    25.350000    24.343254   
2015-03-31    27.299999    27.299999    27.299999    27.299999    26.215811   
2015-04-30    28.020000    28.020000    28.020000    28.020000    26.907215   
2015-06-30    27.230000    27.230000    27.230000    27.230000    26.148592   
2015-07-31    29.030001    29.030001    29.030001    29.030001    27.877106   
2015-09-30    23.059999    23.059999    23.059999    23.059999    22.144196   
2015-11-30    20.889999    20.889999    20.889999    20.889999    20.060377   
2016-02-29    16.780001    16.780001    16.780001    16.780001    16.113602   
2016-03-31    15.600000    15.600000    15.600000    15.600000    14.980463   
2016-05-31    17.070000    17.070000    17.070000    17.070000    16.392086   
2016-06-30    16.540001    16.540001    16.540001    16.540001    15.883134   
2016-08-31    17.969999    17.969999    17.969999    17.969999    17.256340   
2016-09-30    17.030001    17.030001    17.030001    17.030001    16.353674   
2016-10-31    16.250000    16.250000    16.250000    16.250000    15.604650   
2016-11-30    18.129999    18.129999    18.129999    18.129999    17.409985   
2017-01-31    18.150000    18.150000    18.150000    18.150000    17.429192   
2017-02-28    18.250000    18.250000    18.250000    18.250000    17.525223   
2017-03-10   970.000000   987.500000   970.000000   983.000000   943.961243   
2017-03-13   983.000000   983.000000   983.000000   983.000000   943.961243   
2017-03-14   983.000000   983.000000   983.000000   983.000000   943.961243   
2017-03-15   983.000000   983.000000   983.000000   983.000000   943.961243   
2017-03-16   983.000000   983.000000   983.000000   983.000000   943.961243   
2017-03-17   983.000000   983.000000   983.000000   983.000000   943.961243   
2017-03-20   983.000000   983.000000   983.000000   983.000000   943.961243   
2017-03-21   983.000000   983.000000   983.000000   983.000000   943.961243   
2017-03-22   983.000000   983.000000   983.000000   983.000000   943.961243   
2017-03-23   983.000000   983.000000   983.000000   983.000000   943.961243   
2017-03-24   983.000000   983.000000   983.000000   983.000000   943.961243   
2017-03-27   983.000000   983.000000   983.000000   983.000000   943.961243   
2017-03-28   983.000000   983.000000   983.000000   983.000000   943.961243   
2017-03-29   983.000000   983.000000   983.000000   983.000000   943.961243   
2017-03-30   983.000000   983.000000   983.000000   983.000000   943.961243   
2017-03-31   983.000000   983.000000   983.000000   983.000000   943.961243   
2017-04-03   983.000000   983.000000   983.000000   983.000000   943.961243   
2017-04-04   983.000000   983.000000   983.000000   983.000000   943.961243   
2017-04-05   983.000000   983.000000   983.000000   983.000000   943.961243   
2017-04-06   983.000000   983.000000   983.000000   983.000000   943.961243   
2017-04-07   983.000000   983.000000   983.000000   983.000000   943.961243   
2017-04-10   983.000000   983.000000   983.000000   983.000000   943.961243   
2017-04-11   983.000000   983.000000   983.000000   983.000000   943.961243   
2017-04-12   983.000000   983.000000   983.000000   983.000000   943.961243   
2017-04-13   983.000000   983.000000   983.000000   983.000000   943.961243   
2017-04-18   983.000000   983.000000   983.000000   983.000000   943.961243   
2017-04-19   983.000000   983.000000   983.000000   983.000000   943.961243   
2017-04-20   983.000000   983.000000   983.000000   983.000000   943.961243   
2017-04-21   983.000000   983.000000   983.000000   983.000000   943.961243   
2017-04-24   983.000000   983.000000   983.000000   983.000000   943.961243   
2017-04-25   983.000000   983.000000   983.000000   983.000000   943.961243   
2017-04-26   983.000000   983.000000   983.000000   983.000000   943.961243   
2017-04-27   983.000000   983.000000   983.000000   983.000000   943.961243   
2017-04-28   983.000000   983.000000   983.000000   983.000000   943.961243   
2017-05-02  1228.000000  1230.000000  1221.000000  1220.000000  1171.549072   
2017-05-03  1215.000000  1225.500000  1213.000000  1221.000000  1172.509399   
2017-05-04  1230.000000  1236.319946  1225.000000  1229.000000  1180.191650   
2017-05-05  1233.000000  1233.000000  1213.719971  1214.000000  1165.787354   
2017-05-08  1215.000000  1219.719971  1204.000000  1211.000000  1162.906494   
这是我的代码:

df = pd.read_csv('psh.csv')
df.set_index('Date', inplace=True)
df.index = pd.to_datetime(df.index)
df.ffill(inplace=True)

close = []
for i in df['Close']:
    if i > 100:
        i = i/100
    close.append(i)

df['Close'] = close
现在我有了我想要的结束专栏:

             Open     High         Low      Close   
Date                        
2014-10-31  25.35   25.350000   25.350000   25.35   
2014-11-03  25.35   25.350000   25.350000   25.35   
2014-11-04  25.35   25.350000   25.350000   25.35   
2014-11-05  25.35   25.350000   25.350000   25.35   
2014-11-06  25.35   25.350000   25.350000   25.35   
... ... ... ... ... ... ...
2020-08-17  1948.00 1948.000000 1908.959961 19.30   
2020-08-18  1924.00 1930.000000 1908.000000 19.20   
2020-08-19  1916.00 1932.000000 1910.000000 19.32   
2020-08-20  1912.00 1948.000000 1912.000000 19.30   
2020-08-21  1930.00 1944.910034 1924.000000 19.42   

是否只想修改文件中某些数据的值?我不是CSV方面的专家,但我记得你只是在操纵列表列表,不是吗

因此,如果你的目的是在你的最后一列中有9.43而不是943,也就是说,把你最后一列的所有结果除以100,你仍然可以试试这个,我想:

import csv
f = open('yourfile.csv')
csv_f = csv.reader(f)
for row in csv_f:
     row[5]=row[5]/100
如果您还想去掉昏迷后的一些小数,您可以使用
“%.3f”%row[5]
正确舍入数据


这是你想要做的吗?

请发布你尝试过的代码,并解释更多你想要记录的内容。你也请分享一些源csv文件的记录