相当于R data.table代码的Pandas:df [,new_column:= column2 /(1:.N),by =(column1)]

问题描述 投票:0回答:1

我试图找到相当于以下R data.table行的pandas。

df[, new_column := column2/(1:.N), by=(column1)]

我想在Pandas中创建一个新列。 df,其中column2的值的平均值按column1分组。新列的值必须不同。当您浏览该组的实例时,平均值会发生变化。

例如,如果column1中的组的大小为15:

value_column2 / 1

value_column2 / 2

.....

.....

value_column2 / 15

我达到了这一点:

df['new_column'] = df['column2'].groupby(df['column1']).transform('size')

..或相同:

df['new_column'] = df.groupby('column1')['column2'].transform('size')

我得到一个包含组大小的新列。我不知道我正在寻找的是否与此有关。

python pandas pandas-groupby
1个回答
1
投票

感谢ayhan的帮助,我已经得到了我需要的答案。

Pandas中的等价于此R data.table代码:

df[, new_column := column2/(1:.N), by=(column1)]

是:

df["new_column"] = (df['column2']) / (df.groupby('column1')['column2'].cumcount()+1)
© www.soinside.com 2019 - 2024. All rights reserved.