Python 熊猫计算两个连续行的平均值,并将结果保存在两个单元格中
我有以下数据: 输入Python 熊猫计算两个连续行的平均值,并将结果保存在两个单元格中,python,pandas,dataframe,Python,Pandas,Dataframe,我有以下数据: 输入 ID A 1 0.040 2 0.086 3 0.127 4 0.173 5 0.141 6 0.047 7 0.068 8 0.038 ID A B 1 0.040 0.063 2 0.086 0.063 3 0.127 0.150 4 0.173 0.150 5 0.141 0.094 6 0.047 0.094 7 0.068 0.053 8 0.038 0.053 我想创建B列,B中的每
ID A
1 0.040
2 0.086
3 0.127
4 0.173
5 0.141
6 0.047
7 0.068
8 0.038
ID A B
1 0.040 0.063
2 0.086 0.063
3 0.127 0.150
4 0.173 0.150
5 0.141 0.094
6 0.047 0.094
7 0.068 0.053
8 0.038 0.053
我想创建B列,B中的每两行与A的平均值相同。如下所示:
输出
ID A
1 0.040
2 0.086
3 0.127
4 0.173
5 0.141
6 0.047
7 0.068
8 0.038
ID A B
1 0.040 0.063
2 0.086 0.063
3 0.127 0.150
4 0.173 0.150
5 0.141 0.094
6 0.047 0.094
7 0.068 0.053
8 0.038 0.053
我试过这个密码
df["B"]= (df['A'] + df['A'].shift(-1))/2
我得到了平均值,但我无法将其分配到两行。您可以这样做:
In [10]: df['B'] = df.groupby(np.arange(len(df)) // 2)['A'].transform('mean')
In [11]: df
Out[11]:
ID A B
0 1 0.040 0.063
1 2 0.086 0.063
2 3 0.127 0.150
3 4 0.173 0.150
4 5 0.141 0.094
5 6 0.047 0.094
6 7 0.068 0.053
7 8 0.038 0.053
您可以这样做:
In [10]: df['B'] = df.groupby(np.arange(len(df)) // 2)['A'].transform('mean')
In [11]: df
Out[11]:
ID A B
0 1 0.040 0.063
1 2 0.086 0.063
2 3 0.127 0.150
3 4 0.173 0.150
4 5 0.141 0.094
5 6 0.047 0.094
6 7 0.068 0.053
7 8 0.038 0.053