我不是代码效率方面的专家(至今为止)&最好的pythonic代码编写(目前为止),我想问这里的专家,对于具有共同日期索引的join
数据格式来说,下面的代码是否是最好的,或者合并或合并可能更好:
data = df1.join(df2).join(df3).join(df4).join(df5).dropna()
我在末尾使用.dropna()
后缀来取消出现单个NaN
的行。
注意:在这个数据集中出现NaN
的原因是因为我创建了实际上是其他数据格式的转换版本的数据(使用.shift(n)
),这意味着NaN
在移动数据格式的头上出现。
我打算在许多其他应用程序中使用这段代码,因此希望使用最好的方法(即不要不必要地使用内存,花费太多的时间来处理,使用正确的join/merg/concat结构)。
发布于 2018-10-05 08:49:59
这样做应该更有效率:
data = df1.join([df2, df3, df4, df5], how='inner')
这将合并所有的数据在一次运行。它还将排除在所有数据文件中没有值的任何行(因此不需要dropna()
)。how
的缺省值是'left'
,它为调用数据帧中的每一行生成一行,用NaN
填充任何缺失的值。但是,如果任何数据格式在连接之前都有NaN
值,那么仍然需要使用dropna()
。
如果不想使用dataframes索引,还可以使用on=...
来选择要加入数据格式的列。
https://stackoverflow.com/questions/52661149
复制相似问题