Pandas 数据框。 5 个单元格的列输出值不变,然后输出变化并再次保持 5 个单元格不变,依此类推
Pandas dataframe. Column output value constant for 5 cells, then output changes and remains constant for 5 cells again and so on and so forth
我对 python 和 pandas 很陌生。有好心人可以帮我解决下面的问题吗?
在 Excel 我有以下内容:
Excel output
MOD(A1,5)+1 Date Closing Fixed Percent =IF(B2=5,D2*E2,F3)
0 1 12/05/2020 104.1 1.1 108% 112.4
1 2 11/05/2020 103.5 1.1 109% 112.4
2 3 10/05/2020 100.5 1.1 112% 112.4
3 4 09/05/2020 100.1 1.1 112% 112.4
4 5 08/05/2020 102.2 1.1 110% 112.4
5 1 07/05/2020 102.5 1.1 112% 114.5
6 2 06/05/2020 103.2 1.1 111% 114.5
7 3 05/05/2020 108.7 1.1 105% 114.5
8 4 04/05/2020 106.7 1.1 107% 114.5
9 5 03/05/2020 104.1 1.1 110% 114.5
10 1 02/05/2020 102.1 1.1 118% 120.7
11 2 01/05/2020 102.6 1.1 118% 120.7
12 3 30/04/2020 106.5 1.1 113% 120.7
13 4 29/04/2020 100.5 1.1 120% 120.7
14 5 28/04/2020 109.8 1.1 110% 120.7
请问,当我使用数据框时,获得最后一列所示输出的最佳方式是什么?
基本上我取每 5 个收盘价 * 固定,第 1 - 5 个单元格具有相同的值。
单元格 6 - 9 将填充第 9 个收盘价 * 固定等等。
我希望它是清楚的,因为我描述它的方式非常复杂。
提前致谢!
import pandas as pd
df = pd.read_csv("D:\<YOUR_DATA>.csv", parse_dates=["Date"])
df_5th = df.loc[df['MOD']==5]
df['blah']=df_5th['Closing'] * df_5th['Fixed']
df['blah']=df['blah'].fillna(method='bfill')
我对 python 和 pandas 很陌生。有好心人可以帮我解决下面的问题吗?
在 Excel 我有以下内容:
Excel output
MOD(A1,5)+1 Date Closing Fixed Percent =IF(B2=5,D2*E2,F3) 0 1 12/05/2020 104.1 1.1 108% 112.4 1 2 11/05/2020 103.5 1.1 109% 112.4 2 3 10/05/2020 100.5 1.1 112% 112.4 3 4 09/05/2020 100.1 1.1 112% 112.4 4 5 08/05/2020 102.2 1.1 110% 112.4 5 1 07/05/2020 102.5 1.1 112% 114.5 6 2 06/05/2020 103.2 1.1 111% 114.5 7 3 05/05/2020 108.7 1.1 105% 114.5 8 4 04/05/2020 106.7 1.1 107% 114.5 9 5 03/05/2020 104.1 1.1 110% 114.5 10 1 02/05/2020 102.1 1.1 118% 120.7 11 2 01/05/2020 102.6 1.1 118% 120.7 12 3 30/04/2020 106.5 1.1 113% 120.7 13 4 29/04/2020 100.5 1.1 120% 120.7 14 5 28/04/2020 109.8 1.1 110% 120.7
请问,当我使用数据框时,获得最后一列所示输出的最佳方式是什么?
基本上我取每 5 个收盘价 * 固定,第 1 - 5 个单元格具有相同的值。
单元格 6 - 9 将填充第 9 个收盘价 * 固定等等。
我希望它是清楚的,因为我描述它的方式非常复杂。
提前致谢!
import pandas as pd
df = pd.read_csv("D:\<YOUR_DATA>.csv", parse_dates=["Date"])
df_5th = df.loc[df['MOD']==5]
df['blah']=df_5th['Closing'] * df_5th['Fixed']
df['blah']=df['blah'].fillna(method='bfill')