如何只删除熊猫中一列的整数?

时间:2019-09-26 22:48:32

标签: pandas

我试图仅去除数字值,即前1或2位数字。列中的某些值包含纯字符串,而其他值包含特殊字符。参见图片获取值计数:

The definition in the docs

我尝试了多种方法:

target == toplevel_binding

没有人在工作。 dtype是对象。需要明确的是,我正在尝试仅用数字创建一个新列(以date / date的形式),如果我可以将分数转换为十进制的小数,则将是奖励

1 个答案:

答案 0 :(得分:1)

这适用于除分数,并且还允许在字符串中存在多余的数字(它只返回第一个数字序列):

In [60]: import pandas as pd                                                                                                                                                                                  

In [61]: import re                                                                                                                                                                                            

In [62]: df = pd.DataFrame([0, "6''", '7"', '8in', 'text', '3/4"', '1a3'], columns=['_Size'])                                                                                                                 

In [63]: df                                                                                                                                                                                                   
Out[63]: 
  _Size
0     0
1   6''
2    7"
3   8in
4  text
5  3/4"
6   1a3

In [64]: def cleaning_function(row): 
    ...:     row = str(row) 
    ...:     fractions = re.findall(r'(\d+)/(\d+)', row) 
    ...:     if fractions: 
    ...:         return float(int(fractions[0][0])/int(fractions[0][1])) 
    ...:     numbers = re.findall(r'[0-9]+', str(row)) 
    ...:     if numbers: 
    ...:         return numbers[0] 
    ...:     return 0 
    ...:                                                                                                                                                                                                      

In [65]: df._Size.apply(cleaning_function)                                                                                                                                                                    
Out[65]: 
0       0
1       6
2       7
3       8
4       0
5    0.75
6       1
Name: _Size, dtype: object