慕的地10843
这是正确的。+1 给他的 shift() 方法。然后,用户需求发生了变化。所以,这是我对最新要求的回答。#import pandas for managing data with dataframeimport pandas as pd#import tabulate to print your data frame as tablefrom tabulate import tabulate#Create a data dictionarymyData={'Numbers':[1000,1002,1003,0,0,0,0,0,0],'Date':['12/1/2018','12/2/2018','12/3/2018','12/4/2018','12/5/2018','12/6/2018','12/7/2018','12/8/2018','12/9/2018'],'Mean':[1,0,0.5,0.6,0.4,0.1,-0.7,0.2,-0.1]}#Create a data frame from the data dictionary using pandas. User mentioned that the data is already in the#pandas data framemyDataFrame=pd.DataFrame(myData)#Print your final table (just pretty print)print(tabulate(myDataFrame, headers='keys', tablefmt='psql'))#Declare a listMultiplicationList=[]#Declare a constantStorePreviousValue=0for i in range(0,len(myDataFrame['Numbers'])): #If it is the first row then use the Number if i==0: #Append the value to the list MultiplicationList.append(myDataFrame['Numbers'][i]) else: #If it is not the first row, and the value in the first column of the previous row is '0' #multiply Mean with the previous multiplication result if myDataFrame['Numbers'][i-1]==0: StorePreviousValue=StorePreviousValue*myDataFrame['Mean'][i] #If it is not the first row, and the value in the first column of the previous row is not '0' #(should probably say greate than '0', but the question is not clear about that), then #multiply Mean with the Number in the first column of the previous row else: StorePreviousValue=myDataFrame['Numbers'][i-1]*myDataFrame['Mean'][i] #Append the value to the list MultiplicationList.append(StorePreviousValue)#Create a new column in the data frame and pass the list as the valuemyDataFrame['Multiplication']=MultiplicationList#Print your final table (just pretty print)print(tabulate(myDataFrame, headers='keys', tablefmt='psql'))这是输出+----+-----------+-----------+--------+| | Numbers | Date | Mean ||----+-----------+-----------+--------|| 0 | 1000 | 12/1/2018 | 1 || 1 | 1002 | 12/2/2018 | 0 || 2 | 1003 | 12/3/2018 | 0.5 || 3 | 0 | 12/4/2018 | 0.6 || 4 | 0 | 12/5/2018 | 0.4 || 5 | 0 | 12/6/2018 | 0.1 || 6 | 0 | 12/7/2018 | -0.7 || 7 | 0 | 12/8/2018 | 0.2 || 8 | 0 | 12/9/2018 | -0.1 |+----+-----------+-----------+--------++----+-----------+-----------+--------+------------------+| | Numbers | Date | Mean | Multiplication ||----+-----------+-----------+--------+------------------|| 0 | 1000 | 12/1/2018 | 1 | 1000 || 1 | 1002 | 12/2/2018 | 0 | 0 || 2 | 1003 | 12/3/2018 | 0.5 | 501 || 3 | 0 | 12/4/2018 | 0.6 | 601.8 || 4 | 0 | 12/5/2018 | 0.4 | 240.72 || 5 | 0 | 12/6/2018 | 0.1 | 24.072 || 6 | 0 | 12/7/2018 | -0.7 | -16.8504 || 7 | 0 | 12/8/2018 | 0.2 | -3.37008 || 8 | 0 | 12/9/2018 | -0.1 | 0.337008 |+----+-----------+-----------+--------+------------------+如果您没有 pandas 或 tabulate,请使用 pip install pandas pip install tabulate 进行安装如果您不熟悉 pip,请谷歌搜索。此答案假设您知道如何从文件中读取数据并创建数据字典。如果你不这样做,那将是另一个要问的问题。