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