【发布时间】:2020-02-17 08:23:55
【问题描述】:
我有带有列的 DataFrame:城市、风向、温度。当然每个城市只出现1次!!!并且只有 1 个风向和温度数据点。例如: 0 纽约 252.0 22.0
如何创建自己的方法并在 DataFrame 中使用它?例如,我想创建自己的方法“aa”,它返回一些解决方案(城市中的温度减去整列“温度”的平均温度),并在聚合我的 DataFrame 期间使用这个创建的方法。 目前我创建了方法“aa”,如下所示,我在聚合中使用它,但是,“aa”方法到处显示“0”。你能给我写一个合适的代码吗?我犯了错误 id def aa(x) 吗?
def aa(x):
return x - np.mean(x)
file.groupby(["City"]).agg({"Wind direction":[np.mean, aa], "Temperature":["mean", aa]})
样本数据:(取自 OP 提供的 cmets)
file = pd.DataFrame({"City":["New York", "Berlin", "London"], "Wind direction":[225.0, 252.0, 310.0], "Temperature":[21.0, 18.5, 22.0]})
【问题讨论】:
-
不,我想创建自己的方法“aa”并实现它 .agg() 函数,我需要这样做,我知道这是可能的,但是我不知道我的代码中的错误在哪里。
-
添加一些示例数据
-
我在函数中使用了 x - np.mean(x) 因为我想从给定城市的温度中减去所有城市的平均温度,然后使用 .agg() 创建表像这样: City-----Temperature in City-----Temperature in City - 平均温度和风向相同
-
为此,您需要更改此
np.mean(x)以通过np.mean(file[x.name])获取列的平均值。
标签: python pandas dataframe methods aggregation