【发布时间】:2019-06-11 14:45:16
【问题描述】:
我有两个数据框:
df1 =
value
0 a
1 b
2 c
df2 =
value
0 d
1 e
我需要跨索引连接它们,但我必须保留第一个数据帧的索引并在第二个数据帧中继续,如下所示:
result =
value
0 a
1 b
2 c
3 d
4 e
我的猜测是pd.concat([df1, df2], ignore_index=True) 会完成这项工作。但是,我担心对于大型数据帧,行的顺序可能会改变,我最终会得到这样的结果(前两行改变了索引):
result =
value
0 b
1 a
2 c
3 d
4 e
所以我的问题是,pd.concat 和 ignore_index=True 是否将索引连续保存在正在连接的数据帧中,或者索引分配存在随机性?
【问题讨论】:
-
我认为您不必担心顺序,
concat基本上是按给定顺序堆叠您指定的数据帧,ignore_index将在级联。我一直在使用它,从来没有遇到过订单问题。 -
我只是想确定一下。因为在将数据从 DataFrame 传递到 ndarray 时,我遇到了类似的问题,通常会保留顺序,但在我的特殊情况下不是。
-
我只是想确定一下 -> 写一个测试
-
@PaulH 我担心的是通常的行为是保留索引只是因为内存中的计算是这样完成的,但在某些特殊情况下可能不是真的(对于例如,python将硬盘上的数据溢出以释放内存,然后再次读取)