从字符串数字列中找到总数

时间:2019-08-22 18:15:40

标签: python pandas dataframe

我有一个看起来像这样的Dataframe df:

col1      col2      col3      

 A         123      0.1     
 A         1235     0.2        
 A         1232     0.2    
 A         12       0.05       
 B         23       0.04    
 B         234      0.065    
 B         235      0.08    
 B         2368     0.3    
 B         2369     0.25    
 B         23679    0.6    

现在从这个df中,我想为每个组计算col2中每个前缀值将包含多少个数字。例如,对于A组,我想拥有

col1     col2      new_col

  A        123        8
  A        1235       1
  A        1232       1
  A        12         90
  B        23         779
  B        234        100
  B        235        100
  B        2368       10
  B        2369       10
  B        23679      1

再加123将包含以下数字集: (1230、1231、1232、1233、1234、1235、1236、1237、1238、1239),但是1232和1235存在于不同的df行中,因此10-2 = 8个数字。与12相同。它将包含1200和1299之间的所有100个数字-不同行中的10个给定数字,因此为90。

到目前为止,我遵循的逻辑如下: -创建具有col2长度的列。 -找到每组的最大字符长度

   df['prefix_length'] = df['col2'].str.len()
   df['max_length'] = df.groupby('col1')['col2'].transform(max)
   df['total_numbers'] = 10 ** (df['max_length'] - df['prefix_length'])

数据框未排序,我有很多组。在col2中,所有字符串号都以相同的最小长度前缀开头。任何帮助表示赞赏:)

0 个答案:

没有答案