获取每行的统计信息并将其放入新列中。Pandas

2024-09-27 07:27:13 发布

您现在位置:Python中文网/ 问答频道 /正文

所以我有一个带有一些值的数据帧。这是我的数据帧:

|in|x|y|z|
+--+-+-+-+
| 1|a|a|b|
| 2|a|b|b|
| 3|a|b|c|
| 4|b|b|c|

我想得到每行的唯一值的数目,以及不等于第x列中值的值的数目。结果应该如下所示:

^{pr2}$

我可以在这里做出一些肮脏的决定。但一定有一些优雅的方法。我的想法是改变dropduplicates(在series上不起作用);变成array和.unique();数据框错误()我想逃避的;和。适用于每一行。在


Tags: 数据方法in错误arrayseriesunique数目
1条回答
网友
1楼 · 发布于 2024-09-27 07:27:13

下面是使用apply的解决方案。在

df['count of not x'] = df.apply(lambda x: (x[['y','z']] != x['x']).sum(), axis=1)
df['unique'] = df.apply(lambda x: x[['x','y','z']].nunique(), axis=1)

一种不适用于获取非x计数的解决方案:

^{pr2}$

想不出什么特别的好东西。这使用apply,但可能更快,这取决于数据的形状。在

df['unique'] = df[['x','y','z']].T.apply(lambda x: x.nunique())

相关问题 更多 >

    热门问题