我有一个数据框,其中包含一列数字,如下所示:
1. 34.5
2. 345.2
3. 898.4-
4. 87.4
...
n. 847.3-
列是str,现在我已经编写了循环整个列(大约1900万行)的代码。 我问是否有人知道更快的方法,将“-”放在前面并将str更改为数字
我的代码:
for i, row in frame.iterrows():
Val=row[9]
if row[9].find("-") > 0 :
Val="-"+row[9].replace("-","")
frame.iloc[i,9]=Val
frame[frame.columns[9]]=pd.to_numeric(frame[frame.columns[9]]
最佳答案
您可以直接借助str
来完成:
frame.loc[frame[col_name].str[-1] == '-', col_name] = '-' + frame.loc[
frame[col_name].str[-1] == '-', col_name].str.replace('-', '')
frame[col_name] = frame[col_name].astype('float')
关于python - 在数字后签名 "-",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60709254/