我有一个pandas数据框(如果更好,可以将其转换为numpy数组):
我想将每个值从字符串转换为数字
我曾经尝试使用convert objects
之类的东西,但是根本不起作用。我认为问题出在方括号中,因此如果我可以摆脱它们,该功能将起作用。
致以问候并预先致谢
编辑:
这里是数据的来源
X_ans=[]
Y_ans=[]
for i in range (len(data["Births"])-2):
X=list(data["Births"])[i:i+3]
Y=list(data["Births"])[i+1]
X_ans.append(X)
Y_ans.append(Y)
in_=pd.DataFrame([ str(x) for x in X_ans ],columns=['input'])
out=pd.DataFrame([ str(x) for x in Y_ans ],columns=['output'])
ans_1=pd.concat([in_,out],axis=1)
ans_1会这样:
现在我将其拆分:
msk = np.random.rand(len(ans_1)) < 0.8
traindf = ans_1[msk]
evaldf = ans_1[~msk]
并拆分用逗号分隔的值以获得尺寸
X_train = traindf.iloc[:, 0]
Y_train = traindf.iloc[:, 1]
X_test = evaldf.iloc[:, 0]
Y_test = evaldf.iloc[:, 1]
X_train = X_train.str.split(pat = ',', expand = True)
X_train = X_train.values
X_test = X_test.str.split(pat = ',', expand = True)
X_test = X_test.values
PS:我可以使用值:
答案 0 :(得分:2)
答案 1 :(得分:0)
offset
df:
import pandas as pd
df=pd.DataFrame({0:['[3242','232','243214]'],1:['[3242','232','243214]']})
如果您想推广删除所有非数字字符的逻辑,
0 1
0 [3242 [3242
1 232 232
2 243214] 243214]
输出:
df.replace(regex=r'\D',value='',inplace=True)
df=df.apply(pd.to_numeric)