具有多个日期时间的熊猫数据框

塔布:

我有一个pandas数据框,它的日期时间在多列中,看起来与下面类似,但有数百列,几乎推1k。

datetime, battery, datetime, temperature, datetime, pressure
2020-01-01 01:01:01, 13.8, 2020-01-01 01:01:02, 97, 2020-01-01 01:01:03, 10
2020-01-01 01:01:04, 13.8, 2020-01-01 01:01:05, 97, 2020-01-01 01:01:06, 11

我所做的是将其导入,然后使用pd.to_datetime转换每个datetime列。这样可以将内存使用量减少一半以上(从2.4GB到1.0GB),但是我想知道这是否仍然效率低下,也许是一种更好的方法。

  1. 我可以将其转换为3列,其中包含日期时间,数据名称,数据度量值,我将从中受益吗?如果是这样,什么是最好的方法是什么?我已经尝试过了,但是最终有很多空白。

  2. 是否会有另一种方式处理我刚才不提供的数据?

  3. 还是我在做的事有意义并且足够有效?

我最终希望通过选择特定的数据名称来绘制其中一些数据。

Roy2012:

我对上述数据进行了一个小实验,并将数据转换为日期/类型/值列可减少总体内存消耗:

print(df) 

             datetime  battery          datetime.1  temperature          datetime.2  pressure
0 2020-01-01 01:01:01     13.8 2020-01-01 01:01:02           97 2020-01-01 01:01:03        10
1 2020-01-01 01:01:04     13.8 2020-01-01 01:01:05           97 2020-01-01 01:01:06        11

print(df.memory_usage().sum())
==> 224

转换数据框后:

dfs = []
for i in range(0, 6, 2):
    d = df.iloc[:, i:i+2]
    d["type"] = d.columns[1]
    d.columns = ["datetime", "value", "type"]
    dfs.append(d)
new_df = pd.concat(dfs)

print(new_df) 
==>
             datetime  value         type
0 2020-01-01 01:01:01   13.8      battery
1 2020-01-01 01:01:04   13.8      battery
0 2020-01-01 01:01:02   97.0  temperature
1 2020-01-01 01:01:05   97.0  temperature
0 2020-01-01 01:01:03   10.0     pressure
1 2020-01-01 01:01:06   11.0     pressure

print(new_df.memory_usage().sum())
==> 192

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何从具有日期时间列的过滤数据框中正确更新熊猫数据框

在带有日期的几列上具有多个条件的子集熊猫数据框

通过装饰器声明熊猫数据框具有日期时间索引

具有不相等元素的熊猫日期时间索引数据框之间的操作

创建具有多个数据框的熊猫数据框

根据多个条件调整熊猫数据框中的日期时间

从具有多个日期/价格列的数据框中以大熊猫创建面板

带有日期时间列的子集熊猫数据框

具有日期范围列的内部联接熊猫数据框

从熊猫数据框中获取具有最大日期的行

具有多个标头的熊猫时间序列数据帧

在熊猫数据框的列中按具有不同标识符的重复日期时间索引进行聚合

删除熊猫数据框中具有多个关联的条目?

具有多个键的熊猫数据框到json

如何使用熊猫简化具有多个索引的数据框?

将具有日期时间索引的行插入数据框

使用ifelse编辑具有多个时间点的数据框

使用日期时间扩展熊猫数据框

熊猫数据框分组日期时间月份

熊猫数据框列到日期时间

熊猫日期时间索引到数据框

在日期时间过滤熊猫数据框

如何有条件地从熊猫数据框中的多个日期时间列中选择第一个非空日期?

熊猫将多个数据框列转换为单个日期时间索引

将熊猫数据框中的多个列更改为日期时间

给定一个包含多个日期和每个日期多次的熊猫数据框,我如何选择每个日期的时间?

熊猫-将具有开始和结束日期的数据框转换为每日数据

从熊猫数据框中的日期时间中删除时间戳

熊猫数据框日期时间到时间再到秒