Pandas Dataframe根据行数设置列值

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

我有一个名为“ segments”的数据框,看起来像这样:

               COL_A
0              10135
1              10135
2              10135
3              10140
4              10140

而且我想让它看起来像这样。其中,Outdegree是包含COL_A中的值的行数,因此,例如10135位于3行中,因此每行的OUTDEGREE设置为3:

               COL_A    OUTDEGREE
0              10135    3
1              10135    3
2              10135    3
3              10140    2
4              10140    2

这是我正在尝试但不起作用的内容:

segments['OUTDEGREE'] = len(segments[segments['COL_A'] == segments['COL_A']])

该代码将所有行加起来,并将总计加到OUTDEGREE列中

python pandas dataframe
1个回答
0
投票

您可以将len'count'与转换功能配合使用来实现

df['OUTDEGREE'] = df.groupby('COL_A')['COL_A'].transform(len)
df

df['OUTDEGREE'] = df.groupby('COL_A')['COL_A'].transform('count')

输出:

    COL_A   OUTDEGREE
0   10135   3
1   10135   3
2   10135   3
3   10140   2
4   10140   2
© www.soinside.com 2019 - 2024. All rights reserved.