Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/362.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_Dataframe - Fatal编程技术网

Python 字符串到数据帧的转换

Python 字符串到数据帧的转换,python,pandas,dataframe,Python,Pandas,Dataframe,在这个屏幕截图中,数据(字符串数据类型)和df2(熊猫数据帧)存储相同的数据—一个时间戳和一个值 如何获取类似数据帧中的数据,以便将值附加到df2中,从而使所有数据记录和所有df2记录都位于一个数据帧中,并与df2的当前格式相匹配 我可以发布到目前为止我尝试过的内容,但我得到的只是错误:(看起来您的字符串数据是格式正确的json(据我所知,它与Python字典非常相似,但严格要求双引号而非单引号)。尝试: 这将把您的字符串转换成dict类型,您可以从中轻松创建和操作数据帧 编辑: 如果您的任何

在这个屏幕截图中,数据(字符串数据类型)和df2(熊猫数据帧)存储相同的数据—一个时间戳和一个值

如何获取类似数据帧中的数据,以便将值附加到df2中,从而使所有数据记录和所有df2记录都位于一个数据帧中,并与df2的当前格式相匹配


我可以发布到目前为止我尝试过的内容,但我得到的只是错误:(

看起来您的字符串数据是格式正确的json(据我所知,它与Python字典非常相似,但严格要求双引号而非单引号)。尝试:

这将把您的字符串转换成dict类型,您可以从中轻松创建和操作数据帧

编辑:


如果您的任何字符串都有单引号,您可以使用str.replace(“'”,“\”)来解决此问题将它们转换为双引号。这只会导致问题,无论出于何种原因,如果您的数据有不正确的双引号。

看起来您需要将数据转换为dict…使用
json
模块。我只使用双引号,但这是我的问题:>>>打印(数据[:100]){“数据”:[[1546992043.3410804,-10.070938800134865],[1546992128.6818917,-10.24111650646369],[15469>>>dict=json.loads(data)>>df1=pd.DataFrame(data)回溯(最近一次调用):文件“”,第1行,文件“C:\Users\chris\AppData\Local\Programs\Python37-32\lib\site packages\pandages\core\frame.py”,第422行,在init raise ValueError中('DataFrame constructor not Right called!')ValueError:DataFrame constructor not Right called!>>>Hi@cmcau,请确保再次调用dict对象上的DataFrame构造函数,而不是字符串:pd.DataFrame(dict),而不是pd.DataFrame(data)。数据变量仍保留字符串。dict对象可以直接转换为数据帧。这几乎可以正常工作,但第一列(索引)应该是一个纪元时间转换成一个合适的日期时间。在数据帧定义中有没有一种方法可以做到这一点?基本上是说它是一个日期时间,然后是一个浮点值?你的意思是(在回答代码中):df=pd.DataFrame(ast.literal\u eval(data),dtype=np.float32,columns=['index','data'],index=pd.date\u range('20190101',periods=3,freq='T')我得到了一个错误:ValueError:传递值的形状是(22000),索引暗示(2,3)我想这是因为我没有3组值,我有X(数字会改变),如果我正确地阅读代码,你会认为这是一个日期,但它是一个纪元时间(低至毫秒),这一点必须保留。我知道这是我自己缺乏Python知识,我知道我正在尝试简化操作并“完成”,我很高兴根据我的情况调整代码……我只需要知道代码的真正用途。
import ast 
import pandas as pd
data = "[[1212.1221, -10.5],[2232.55, -19.44],[32432.87655, -445.88]]"
df = pd.DataFrame(ast.literal_eval(data),
                 columns=['index', 'data'])
import ast 
import pandas as pd
data = "[[1212.1221, -10.5],[2232.55, -19.44],[32432.87655, -445.88]]"
df = pd.DataFrame(ast.literal_eval(data),
                 columns=['index', 'data'])