我试图找到相当于以下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')
我得到一个包含组大小的新列。我不知道我正在寻找的是否与此有关。
答案 0 :(得分: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)