熊猫从字符串中提取带小数的数字

时间:2020-05-19 17:21:12

标签: python pandas

我正在尝试使用熊猫提取所有数字,包括小数点,点和逗号以字符串的形式。

这是我的DataFrame

       rate_number    
0      92 rate
0      33 rate
0      9.25 rate
0    (4,396 total
0    (2,620 total

我尝试使用df['rate_number'].str.extract('(\d+)', expand=False),但结果不正确。

我需要提取的DataFrame应该是以下内容:

    rate_number    
0      92 
0      33 
0      9.25 
0    4,396 
0    2,620 

2 个答案:

答案 0 :(得分:1)

您可以尝试以下方法:

df['rate_number'] = df['rate_number'].replace('\(|[a-zA-Z]+', '', regex=True)

更好的答案:

df['rate_number_2'] = df['rate_number'].str.extract('([0-9][,.]*[0-9]*)')

输出:

  rate_number rate_number_2
0         92             92
1         33             33
2       9.25           9.25
3      4,396          4,396
4      2,620          2,620

答案 1 :(得分:0)

Dan在上面的评论不是很引人注目,但对我有用:

for df in df_arr:
    df = df.astype(str)
    df_copy = df.copy()
    for i in range(1, len(df.columns)):
        df_copy[df.columns[i]]=df_copy[df.columns[i]].str.extract('(\d+[.]?\d*)', expand=False) #replace(r'[^0-9]+','')
    new_df_arr.append(df_copy)
相关问题