将csv文件作为float读取到pandas dataframe

doc*_*rer 7 python csv parsing pandas

我有一个.csv文件,其中顶行和第一列包含字符串,其余数据为浮点数。我想将其读入数据帧,其中第一行和第一列分别作为列名称和索引,所有浮动值作为float64.

如果我使用df = pd.read_csv(filename,index_col=0)所有数值都保留为字符串。

如果我使用df = pd.read_csv(filename, index_col=0, dtype=np.float64)我会得到一个异常:ValueError: could not convert string to float因为它尝试将第一列解析为float.

有大量列,并且我没有列名称,因此我不想将每一列标识为float; 我想解析除第一列之外的每一列。

doc*_*rer 2

原来的代码是正确的

df = pd.read_csv(filename,index_col=0)
Run Code Online (Sandbox Code Playgroud)

但该.csv文件的构造不正确。

正如 @juanpa.arrivillaga 指出的,dtypes只要列中的所有数据都相同,pandas 将在没有任何参数的情况下推断dtype。这些列被解释为字符串,因为尽管大多数数据是数字,但一行包含非数字数据(实际上是日期)。.csv从解决的问题中删除这一行。