繁体   English   中英

计算值在 Pandas dataframe 列中出现的频率的新列

[英]New column that counts the frequency that a value occurs in a Pandas dataframe column

我有一个 dataframe 看起来像

ID   feature
1    2 
1    3
1    4
2    3
2    2
3    5
3    8
3    4
3    2
4    4
4    6

我想添加一个新列n_ID来计算元素在列ID中出现的次数,所以希望 output 看起来像

ID   feature  n_ID
1    2        3
1    3        3
1    4        3
2    3        2
2    2        2
3    5        4
3    8        4
3    4        4
3    2        4
4    4        2
4    6        2

我知道.value_counts() function 但我不知道如何利用这种方法制作新列。 提前致谢

使用价值计数...我在想这个...@sophcles 感谢您的转换... :)

df = pd.DataFrame({"ID":[1,1,1,2,2,3,3,3,3,4,4],
                    "feature":[1,2,3,4,5,6,7,8,9,10,11]})
df1 = pd.DataFrame(df["ID"].value_counts().reset_index())
df1.columns = ["ID","n_ID"]

df = df.merge(df1,how = "left",on="ID")

只需创建新列并使用 lambda 函数计算出现次数:

代码:

df['n_id'] = df.apply(lambda x:  df['ID'].tolist().count(x.ID), axis=1)

Output:

   ID feature   n_id
0   1   1        3
1   1   2        3
2   1   3        3
3   2   4        2
4   2   5        2
5   3   6        4
6   3   7        4
7   3   8        4
8   3   9        4
9   4   10       2
10  4   11       2

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM