我正在尝试使用熊猫提取所有数字,包括小数点,点和逗号以字符串的形式。
这是我的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
答案 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)