作为一名代码效率(yet)和最佳pythonic代码编写(yet)方面的专家,我想问一下这里的专家,以下代码是否是对具有公共日期索引的join
数据帧最好的,或者merge或concat是否更好:
data = df1.join(df2).join(df3).join(df4).join(df5).dropna()
我在末尾使用了.dropna()
后缀来取消出现单个NaN
的行。你知道吗
注意:之所以NaN
出现在这个数据集中,是因为我创建了实际上是其他数据帧的移位版本的数据帧(使用.shift(n)
),这意味着NaN
在移位的数据帧的头部爬行。你知道吗
我打算在许多其他应用程序中使用此代码,因此希望使用最好的方法(即不要不必要地使用内存、花费太多时间处理、使用正确的join/merg/concat构造)。你知道吗
应该更有效地做到:
这将一次性合并所有数据帧。它还将排除所有数据帧中没有值的任何行(因此不需要
dropna()
)。how
的默认值是'left'
,它为调用数据帧中的每一行生成一行,用NaN
填充任何缺少的值。但是,如果任何数据帧在连接之前都有NaN
值,那么仍然需要使用dropna()
。你知道吗如果不想使用dataframes索引,还可以使用
on=...
来选择要加入dataframes的列。你知道吗相关问题 更多 >
编程相关推荐