Pandas 如何计算具有相同前缀的ID并将总数存储在另一列中
我有一个数据集,其中我注意到ID带有分类信息。基本上,ID的最后两位代表同一家族中的子ID(01、02、03等)。下面是一个例子。我正在尝试获取另一列(第2列)来存储同一系列的子ID的数量信息。e、 例如,22302属于223家族,该家族有三个成员:22301、22302和22303。因此,我有一个新的分类建模功能。不确定是否有更好的方法提取信息。无论如何,有人能告诉我如何提取同一类中的数字吗(如第2列所示) 我是同一班的 234011 223023 43201 1 144501 2 144502 2 223013Pandas 如何计算具有相同前缀的ID并将总数存储在另一列中,pandas,classification,feature-extraction,tabular,Pandas,Classification,Feature Extraction,Tabular,我有一个数据集,其中我注意到ID带有分类信息。基本上,ID的最后两位代表同一家族中的子ID(01、02、03等)。下面是一个例子。我正在尝试获取另一列(第2列)来存储同一系列的子ID的数量信息。e、 例如,22302属于223家族,该家族有三个成员:22301、22302和22303。因此,我有一个新的分类建模功能。不确定是否有更好的方法提取信息。无论如何,有人能告诉我如何提取同一类中的数字吗(如第2列所示) 我是同一班的 234011 223023 43201 1 144501 2 14450
22303 3您可以使用
str
切片和转换
df['New']=df.groupby(df.ID.astype(str).str[:-2]).ID.transform('size')
df
Out[223]:
ID Sameclass New
0 23401 1 1
1 22302 3 3
2 43201 1 1
3 144501 2 2
4 144502 2 2
5 22301 3 3
6 22303 3 3
对不起,我没说清楚。预期输出应与第二列“同一类”完全相同。谢谢我看到“New”列就像是不同家庭的索引,但我实际上想知道每个家庭的编号,就像我的第二列所示。对不起,我没说清楚。@Alexu你是什么意思?检查我的new=2是否都在同一组是的,我同意他们在同一组。但我们的期望是在同一组中拥有id的编号。e、 例如,22302属于223人集团,该集团有3名成员。因此,组中任何人的输出都应为3作为输出。这有意义吗?