列表给Pandas DF读作字符串

时间:2017-04-22 15:55:37

标签: python pandas dataframe

所以我正在研究一个项目,并且想要使用/学习大熊猫,因为它似乎对我想做的事情非常有用....

CONSTRAINTS 我无法改变我在多个文件中读取python代码来构造字典的事实。这是必须的,我必须忍受它,并从列表字典创建数据框。

问题1:我收到字典传递给我。该词典包含多个数字项。每个项目都包含一个数据列表。这个数据有一个时间字段,我试图计算每行之间的差异。现在我正在阅读一个单独的数字项目,转换它以使其进入正确的结构,然后尝试对它执行.diff()操作...例如...

'400' : [ [ {'IDs'} ], {'TIME COL'}, ... ] 

然后我执行以下命令......

df = pd.DataFrame(myData['400'])

然后我进行转置,以便我所有的时间都在行中,而不是在列中。

问题1:这是正确的做法吗?因为我想要占用时间的差异,所以我读到diff在行而不是列上工作。如果这不正确,我应该怎么做?

问题2:所以现在转置工作...但是,当我尝试对任何列进行diff操作时,我得到以下错误......

TypeError: unsupported operand type(s) for -: 'str' and 'str'

问题2:我读错的数据了吗?我是否应该做其他事情来转换它,以便它将其识别为整数数据集,以便我可以执行此操作?

欢迎任何见解!

1 个答案:

答案 0 :(得分:0)

这可能会帮助您解决问题,因为您需要将日期转换为pandas datetime

import pandas as pd

df = pd.DataFrame({'Col1': list('ABC'), 'Col2': ['1/1/2017', '1/2/2017', '1/3/2017'], 'Col3': ['1/1/2016', '1/2/2016', '1/3/2016']})
df[['Col2', 'Col3']] = df[['Col2', 'Col3']].apply(lambda x: pd.to_datetime(x))
df['Col4'] = df['Col2'] - df['Col3']

这只是一个例子,因为你没有分享任何实际数据。

相关问题