【发布时间】:2018-08-13 10:16:21
【问题描述】:
import pandas as pd
import numpy as np
df = pd.DataFrame(np.random.rand(30,3))
df.head()
给出:
0 1 2
0 0.741955 0.913681 0.110109
1 0.079039 0.662438 0.510414
2 0.469055 0.201658 0.259958
3 0.371357 0.018394 0.485339
4 0.850254 0.808264 0.469885
假设我想添加另一列来构建第 2 列中的平均值:在索引 (0,1) (1,2)... (28,29) 之间。
我想这是一项常见任务,因为第 2 列是 x 轴位置,我希望绘图上的分类标签出现在 x 轴上 2 个点之间的中间。。 p>
所以我想知道是否有熊猫方法:
averages = []
for index, item in enumerate(df[2]):
if index < df[2].shape[0] -1:
averages.append((item + df[2].iloc[index + 1]) / 2)
df["averages"] = pd.Series(averages)
df.head()
给出:
0 1 2 averages
0 0.997044 0.965708 0.211980 0.318781
1 0.716349 0.724811 0.425583 0.378653
2 0.729991 0.985072 0.331723 0.333138
3 0.996487 0.272300 0.334554 0.586686
如您所见,0.31 是 0.21 和 0.42 的平均值。
谢谢!
【问题讨论】: