我对熊猫的read_csv参数感到困惑。
我想用支持向量机制作一个分类器。要使用分类器,我需要向量X和Y都是numpy。 我有一个csv文件,其中有两列:
第一列是数字(目标),例如1或0
第二列是带有“”分隔符的矢量(特征),例如12 32 63 73 563 34。
我遇到的问题:
值正在加载为'numpy.int32'
来自第二列的值被加载为'str',而我希望它们是numpy数组。
import pandas as pd
import numpy as np
DF = pd.read_csv("C:\\STUFF\\foo.csv")
df = DF.head(2)
X = df["firstcol"]
target = X.values
for i in target:
print (type(i))
Y = df["secondcol"]
feature = Y.values
for j in feature:
print (type(j))
所以输出是
<class 'numpy.int64'>
<class 'numpy.int64'>
<class 'str'>
<class 'str'>
问题是:将第二列转换为numpy的最快和最合适的方法是什么?
答案 0 :(得分:2)
试试这个:
df["secondcol"].apply(lambda x: np.array(x.split()).astype(int))
答案 1 :(得分:0)
这对我有用:
t = ['12 32 63 73 563 34']
y = [int(x) for x in str.split(" ") for str in t]
print(y)
打印:[12, 32, 63, 73, 563, 34]
。这仅适用于所有单元格都是您指定的格式且其中没有任何字母的情况。
答案 2 :(得分:0)
假设您的csv文件看起来像这样:
setTimeout(function(){
$(".form-signin").fadeOut(500, function(){
$(".signin-form").load("successreg.php");
});
}, 5000);
阅读它的逻辑方式越多:
1,12 32 63 73 563 34
2,12 32 63 73 563 33
4,12 32 63 73 563 35
然后你直接在cols中获得数据,第一列作为索引。每一行都是(像)一个numpy数组。
df=pd.read_csv('data.csv',header=None,sep='[ ,]',engine='python',index_col=0)