【问题标题】:List to Pandas DF Read as Strings以字符串形式读取 Pandas DF 的列表
【发布时间】:2017-04-22 15:55:37
【问题描述】:

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

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

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

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

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

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

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

问题 1:这是正确的做法吗?因为我想考虑时间的差异,所以我读到差异适用于行而不是列。如果这不正确,我应该怎么做?

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

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

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

欢迎任何见解!

【问题讨论】:

标签: python pandas dataframe


【解决方案1】:

也许这会帮助您解决问题,因为您需要将日期转换为 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']

这只是一个示例,因为您没有共享任何实际数据。

【讨论】:

    猜你喜欢
    • 2021-12-05
    • 2021-02-25
    • 2021-05-26
    • 2016-09-17
    • 2012-10-06
    • 2019-04-22
    • 2017-02-07
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多