问题描述
在 Jupyter Notebook 中,我生成了此代码,我正在尝试使 A 列的行等于当前值 = A 和 B 的先前值(生成 B 行)行,并且第一个结果生成良好但其他结果不好。如何正确地做到这一点? 2 周我不知道请帮忙?好的和坏的 csv 文件都在链接中 https://mab.to/pvOclXbt9
import pandas as pd
import numpy as np
pd.options.mode.chained_assignment = None
df = pd.read_csv (r'bad test.csv')
df
A B
0 30.50 31.240000
1 30.87 28.540000
2 0.00 26.860000
3 0.00 25.330000
4 0.00 25.577500
... ... ...
1455 0.00 215.018753
1456 0.00 197.567497
1457 0.00 199.776253
1458 0.00 199.522495
1459 0.00 201.189995
1460 rows × 2 columns
df.iloc[1:,1] =(0.5*df['A'].shift(1)+0.5*df['B'].shift(1))
A
1 30.870000 #good
2 29.705000 #good
3 13.430000 #bad
4 12.665000 #bad
5 12.788750 #bad
...
1455 106.581249
1456 107.509377
1457 98.783749
1458 99.888126
1459 99.761248
Name: B,Length: 1459,dtype: float64
#result is bad it is should be the like this:
A B
30.5 31.24000025
30.87000012 28.53999996
29.70500004 26.86000013
28.28250009 25.32999992
26.80625001 25.57750034
26.19187517 25.09250021
25.64218769 25.45749998
25.54984384 25.81999969
25.68492177 25.07999992
25.38246084 23.54974985
24.46610535 22.4749999
23.47055263 22.06750011
22.76902637 22.5062499
22.63763814 23.39749956
#df['A']=0.5*df['A'].shift(1)+0.5*df['B'].shift(1) #but it s not wo
怎么做这个工作我不明白怎么做正确的结果?
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)