我一直在网上搜索这个例子,但没找到任何东西。
让df1, df2, .. dfn
成为pandas数据帧,并进行缩进索引。
运行命令时发生了什么:
pandas.concat([df1,..,dfn],axis=1,join_axes=[df1.index])
它不会给我一个错误并提供数据帧。我已经粘贴了我在文档中找到的与此相关的所有内容。当指数不匹配时会发生什么?大熊猫如何知道使用其他数据帧的索引,我想我可能必须放置其他n-1
pandas数据帧的所有索引。
任何提示?
join_axes:索引对象列表 用于其他n - 1轴的特定索引,而不是执行内部/外部设置逻辑
答案 0 :(得分:2)
n
首先,n
中的n-1
是指每个数据框中维度的数量,而不是数据框的数量。您可以从the source code at lines 938ff:
def _get_new_axes(self):
ndim = self._get_result_dim()
new_axes = [None] * ndim
if self.join_axes is None:
for i in range(ndim):
if i == self.axis:
continue
new_axes[i] = self._get_comb_axis(i)
else:
if len(self.join_axes) != ndim - 1:
raise AssertionError("length of join_axes must not be "
"equal to {0}".format(ndim - 1))
(因此,它真的不应该在documentation中读取n-1
。我想这个公式是基于常见用法示例,其中使用join_axes
传递的索引是其中一个数据框。但是,传递的索引也可以是新的合成索引。)
join_axes
实际使用join_axes
是替换要与另一个(或实际每个维度一个)连接的数据帧的索引。
在此过程中,每个数据框中的值只是分配到新索引,忽略它包含的索引。此外,如果其中一个数据帧比相应的索引更长(任何维度),它将被简单地截断。
您可能尝试实现的是将一堆Series
组合成DataFrame
并保留其原始(部分)不匹配的索引。
pandas.concat([df1,..,dfn], axis=1, join='outer')
这样做(join=outer
)。
(但是,当您想要绘制结果数据帧时,可能需要找到一种解决方法,因为all columns are interrupted by NaNs。)
答案 1 :(得分:0)
制作join_axes=[df1.columns]
:
pandas.concat([df1,..,dfn],axis=1,join_axes=[df1.columns])
答案 2 :(得分:0)
联接轴已弃用。现在支持的方式
pandas.concat([df1,..,dfn],axis=1).reindex(df1.columns)