Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/302.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 关于字符串到数组和数组到字符串?_Python_Pandas_Dataformat - Fatal编程技术网

Python 关于字符串到数组和数组到字符串?

Python 关于字符串到数组和数组到字符串?,python,pandas,dataformat,Python,Pandas,Dataformat,我使用df.to_csv函数来存储信息,元素的格式是权重列表中的np.float32,如下所示 df = pd.DataFrame(data=weight_list,index=img_names,columns=var_list) df.to_csv('{}/{}'.format(dirs_path,csv_name)) 然后,我使用pandas.read_csv加载csv文件,元素的值肯定是字符串格式。如何将字符串转换为np.float32 更多信息:csv文件中的元素类型为数组,数组具有

我使用
df.to_csv
函数来存储信息,元素的格式是
权重列表中的
np.float32
,如下所示

df = pd.DataFrame(data=weight_list,index=img_names,columns=var_list)
df.to_csv('{}/{}'.format(dirs_path,csv_name))
然后,我使用pandas.read_csv
加载csv文件,元素的值肯定是字符串格式。如何将字符串转换为
np.float32

更多信息:csv文件中的元素类型为数组,数组具有不同的维度,如下所示:
在不了解更多数据结构的情况下,我建议尝试使用
pd.read\u csv(“mycsv.csv”).astype(np.float32)
astype
将尝试将数据帧内的数据强制转换为指定格式


以上内容可以解决您的问题,但您可能还需要检查您正在使用的pandas的版本(以及
to_csv
read_csv
的文档)

在Python3.7上的pandas版本
0.23.4
上,我能够将一个装满float64的数据帧写入CSV,并成功地用正确的数据类型将其读回

首先生成一些数据,将其写入,然后将其读回(假设您的
weight\u列表
是浮动矩阵):

然后验证数据类型是否正确(
df0.values
仅将数据帧内的数据作为numpy数据数组返回。您也可以检查
df0.dtypes
):


在不了解更多数据结构的情况下,我建议尝试
pd.read\u csv(“mycsv.csv”).astype(np.float32)
astype
将尝试将数据帧内的数据强制转换为指定格式


以上内容可以解决您的问题,但您可能还需要检查您正在使用的pandas的版本(以及
to_csv
read_csv
的文档)

在Python3.7上的pandas版本
0.23.4
上,我能够将一个装满float64的数据帧写入CSV,并成功地用正确的数据类型将其读回

首先生成一些数据,将其写入,然后将其读回(假设您的
weight\u列表
是浮动矩阵):

然后验证数据类型是否正确(
df0.values
仅将数据帧内的数据作为numpy数据数组返回。您也可以检查
df0.dtypes
):


提示:请不要发布代码图片。复制粘贴到问题中,然后改为。一个简单的提醒:请不要发布代码的图片。复制粘贴到问题中。嗨,谢谢。也许我的描述不够详细,我添加了一些关于我的csv文件的数据结构的详细信息。啊,好的,看起来你试图在数据框单元格中存储向量。您可以尝试序列化为json(
df.to_json
pd.read_json
)。首先,熊猫通常用于2D数据集,其中每列都是1D系列。您可能希望尝试重新构造数据,使其成为2D(可能将每个列扩展为2个1D列),或者探索一个选项,如您确实需要N-D数据帧。您好,谢谢。可能我的描述不够详细,我添加了一些有关我的csv文件的数据结构的详细信息。啊,好的,看起来您正试图在数据帧单元格中存储向量。您可以尝试序列化为json(
df.to_json
pd.read_json
)。首先,熊猫通常用于2D数据集,其中每列都是1D系列。您可能希望尝试重新构造数据,使其成为二维数据(可能将每个列扩展为2个1D列),或者探索一个选项,如您确实需要N-D数据帧。
>>> import numpy as np
>>> import pandas as pd
>>> # Generate dummy dataframe and write it to a CSV
>>> weights=np.random.rand(10,10) # Generate dummy 10x10 matrix of random floats
>>> names=['name{}'.format(i) for i in range(10)] # Generate dummy names and variable names
>>> var_list = ['var{}'.format(i) for i in range(10)]
>>> df0 = pd.DataFrame(data=weights, columns=var_list, index=names)
>>> df0.to_csv("test.csv")
>>> # Load the CSV back into a new dataframe
>>> df1=pd.read_csv("test.csv")

>>> # Verify the dtypes are float64, as they were originally
>>> df1.values.dtype
dtype('float64')
>>> df0.values.dtype
dtype('float64')