Python 熊猫加载csv字符串以浮动

Python 熊猫加载csv字符串以浮动,python,numpy,pandas,Python,Numpy,Pandas,是的,你不会相信的,但是我已经浏览了两个小时来获取一行简单的代码。如何将充满字符串的数据帧转换为浮点数据帧。此外,如何将充满字符串的数据帧转换为np.array?似乎有两种解决方案被反复建议——转换对象和aType。他们都不工作 database = pd.read_csv('test1.csv',header=None) database Out[165]: 0 0 0,0,1,0,0 1 1,0,1,0,0 2 0,4,0,1,0 3 1,4,0,1,0 4 1,1,

是的,你不会相信的,但是我已经浏览了两个小时来获取一行简单的代码。如何将充满字符串的数据帧转换为浮点数据帧。此外,如何将充满字符串的数据帧转换为np.array?似乎有两种解决方案被反复建议——转换对象和aType。他们都不工作

database = pd.read_csv('test1.csv',header=None)
database


Out[165]:
0
0   0,0,1,0,0
1   1,0,1,0,0
2   0,4,0,1,0
3   1,4,0,1,0
4   1,1,0,0,1
5   2,1,0,0,1

database = database.astype(str).convert_objects(convert_numeric=True)
x = np.array(database)

In [170]:
x
Out[170]:
array([['0,0,1,0,0'],
       ['1,0,1,0,0'],
       ['0,4,0,1,0'],
       ['1,4,0,1,0'],
       ['1,1,0,0,1'],
       ['2,1,0,0,1']], dtype=object)


从你的评论中我看到,这可能会有所帮助:

import pandas
pandas.read_csv('test1.csv', header=None, lineterminator=' ')

遍历列表中的每一项都不是一个选项,因为我将在大型数据库中使用此方法。您必须首先使用类似于
str.split(',')
的方法将字符串转换为列表,然后您可以将每一项转换为浮点值。正如我所说的,这不是一个真正的选项,因为我必须这样做才能像20000行一样。。。除非Python没有为此类内容提供常规选项,否则您是否尝试过在
pd.read\u csv
call中明确说明
sep=','
?如果是,您可以使用Linux终端从行的末尾快速删除引号。如果您在Windows上,或者如果整行中只有一部分是这样,您可以使用
pd.to_csv()
将整个数据帧或问题列写回csv文件,并在执行此操作时传递
quotechar=None
。再次读取此csv文件可以解决您的问题。现在我想不出其他更好的解决方案(不借助迭代)。在添加lineterminator之后,我得到了以下结果:
0123456789…\0,0,1,0,0\r\n“1 0 1 0 0”\r\n“0 4 0 1 0”\r\n“1 4…11 12 13 14 15 16 18 19 20 0 1 0”\r\n“1 1 0 0 1”\r\n“2 1 0 0 1”\r\n
你的csv真是一团糟。
import pandas
pandas.read_csv('test1.csv', header=None, lineterminator=' ')