我正在从csv列中提取数字值,例如:
column=[None, you earn 5%]
如果可以将“ None”存储为0,第二个仅存储5%,那就太好了。
我尝试使用以下代码转移%。但这会引发错误
“ TypeError:预期的字符串或类似字节的对象”
data.loc[(data['column'] == re.findall(r'([\w]+)', data['column'])), 'disc'] = re.findall(r'([0-9]+\%)',data['column'])
并进行循环。但是似乎没有帮助
def fs(a):
for i in a:
if i == 'None':
a[i] = 0
else:
a[i]=re.search(r'(?<=\().+?(?=\))', a[i])
答案 0 :(得分:0)
如果您的数据框包含一个字符串列,并且您想将字符串“ None”替换为0,并同时保留数字和%,请执行以下操作:
df.textColumn.str.replace("None","0").str.replace("[^0-9.%]", "")
示例:
import pandas as pd
df = pd.DataFrame({'n':[1,2,3,4], 'text':["None","you earn 5%", "this is 3.4%", "5.5"]})
df['text'] = df.text.str.replace("None","0").str.replace("[^0-9.%]", "")
df
n text
0 1 0
1 2 5%
2 3 3.4%
3 4 5.5