gpt4 book ai didi

python - 将 transform 与 nth 一起使用

转载 作者:太空宇宙 更新时间:2023-11-04 00:00:24 25 4
gpt4 key购买 nike

我正在使用以下代码添加一个带有 transform 的列:

df['new_date'] = df.groupby('account')['date'].transform('last')

这工作正常,但默认情况下它会删除 NaN(如现有错误 hereherehere 中所述),我想保留它。开发者建议改用 nth(-1)。没问题!

但是,我不知道如何将它与transform 一起使用。错误信息为

`df.groupby('a')['b'].transform('nth')`

is nth() missing 1 required positional argument: 'n',这似乎很诱人地暗示 transform 识别该方法,只要我能想出一种方法将索引传递给它.但是没有一个

df.groupby('a')['b'].transform('nth(-1)')
df.groupby('a')['b'].transform('nth'(-1))
df.groupby('a')['b'].transform('nth')(-1)

工作。有什么方法可以做到这一点吗?

最佳答案

此处可以使用第二个参数传递给 GroupBy.nth 的值:

np.random.seed(2015)

df = pd.DataFrame({'account': ['foo', 'bar', 'baz'] * 3,
'val': np.random.choice([np.nan, 1],size=9)})
#print (df)

df['val1'] = df.groupby('account')['val'].transform('last')
df['val2'] = df.groupby('account')['val'].transform('nth', -1)
print (df)
account val val1 val2
0 foo NaN 1.0 1.0
1 bar NaN 1.0 NaN
2 baz NaN NaN NaN
3 foo NaN 1.0 1.0
4 bar 1.0 1.0 NaN
5 baz NaN NaN NaN
6 foo 1.0 1.0 1.0
7 bar NaN 1.0 NaN
8 baz NaN NaN NaN

关于python - 将 transform 与 nth 一起使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55891019/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com