Pandas 如何计算具有相同前缀的ID并将总数存储在另一列中

Pandas 如何计算具有相同前缀的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

我有一个数据集,其中我注意到ID带有分类信息。基本上,ID的最后两位代表同一家族中的子ID(01、02、03等)。下面是一个例子。我正在尝试获取另一列(第2列)来存储同一系列的子ID的数量信息。e、 例如,22302属于223家族,该家族有三个成员:22301、22302和22303。因此,我有一个新的分类建模功能。不确定是否有更好的方法提取信息。无论如何,有人能告诉我如何提取同一类中的数字吗(如第2列所示)

我是同一班的

234011

223023

43201 1

144501 2

144502 2

223013


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作为输出。这有意义吗?