pandas 版的rbind [英] Pandas version of rbind
问题描述
在R中,您可以使用rbind将一个数据列粘贴到另一个数据列的底部,从而合并两个数据帧。在大熊猫中,您如何完成同一件事?看起来异常困难。
In R, you can combine two dataframes by sticking the columns of one onto the bottom of the columns of the other using rbind. In pandas, how do you accomplish the same thing? It seems bizarrely difficult.
使用append会导致混乱,包括NaN和我不了解的原因。我只是想绑定两个相同的框架,如下所示:
Using append results in a horrible mess including NaNs and things for reasons I don't understand. I'm just trying to "rbind" two identical frames that look like this:
编辑:我以一种愚蠢的方式创建了DataFrame,这引起了问题。附加= rbind所有意图和目的。
I was creating the DataFrames in a stupid way, which was causing issues. Append=rbind to all intents and purposes. See answer below.
0 1 2 3 4 5 6 7
0 ADN.L 20130220 437.4 442.37 436.5000 441.9000 2775364 2013-02-20 18:47:42
1 ADM.L 20130220 1279.0 1300.00 1272.0000 1285.0000 967730 2013-02-20 18:47:42
2 AGK.L 20130220 1717.0 1749.00 1709.0000 1739.0000 834534 2013-02-20 18:47:43
3 AMEC.L 20130220 1030.0 1040.00 1024.0000 1035.0000 1972517 2013-02-20 18:47:43
4 AAL.L 20130220 1998.0 2014.50 1942.4999 1951.0000 3666033 2013-02-20 18:47:44
5 ANTO.L 20130220 1093.0 1097.00 1064.7899 1068.0000 2183931 2013-02-20 18:47:44
6 ARM.L 20130220 941.5 965.10 939.4250 951.5001 2994652 2013-02-20 18:47:45
但是我得到的东西太可怕了:
But I'm getting something horrible a la this:
0 1 2 3 4 5 6 7 0 1 2 3 4 5 6 7
0 NaN NaN NaN NaN NaN NaN NaN NaN ADN.L 20130220 437.4 442.37 436.5000 441.9000 2775364 2013-02-20 18:47:42
1 NaN NaN NaN NaN NaN NaN NaN NaN ADM.L 20130220 1279.0 1300.00 1272.0000 1285.0000 967730 2013-02-20 18:47:42
2 NaN NaN NaN NaN NaN NaN NaN NaN AGK.L 20130220 1717.0 1749.00 1709.0000 1739.0000 834534 2013-02-20 18:47:43
3 NaN NaN NaN NaN NaN NaN NaN NaN AMEC.L 20130220 1030.0 1040.00 1024.0000 1035.0000 1972517 2013-02-20 18:47:43
4 NaN NaN NaN NaN NaN NaN NaN NaN AAL.L 20130220 1998.0 2014.50 1942.4999 1951.0000 3666033 2013-02-20 18:47:44
5 NaN NaN NaN NaN NaN NaN NaN NaN ANTO.L 20130220 1093.0 1097.00 1064.7899 1068.0000 2183931 2013-02-20 18:47:44
6 NaN NaN NaN NaN NaN NaN NaN NaN ARM.L 20130220 941.5 965.10 939.4250 951.5001 2994652 2013-02-20 18:47:45
0 NaN NaN NaN NaN NaN NaN NaN NaN ADN.L 20130220 437.4 442.37 436.5000 441.9000 2775364 2013-02-20 18:47:42
1 NaN NaN NaN NaN NaN NaN NaN NaN ADM.L 20130220 1279.0 1300.00 1272.0000 1285.0000 967730 2013-02-20 18:47:42
2 NaN NaN NaN NaN NaN NaN NaN NaN AGK.L 20130220 1717.0 1749.00 1709.0000 1739.0000 834534 2013-02-20 18:47:43
3 NaN NaN NaN NaN NaN NaN NaN NaN
我不明白为什么。我开始想念R:(
And I don't understand why. I'm starting to miss R :(
推荐答案
啊,这与我创建DataFrame的方式有关,而不是与创建方式有关。如果要使用循环和如下所示的语句创建框架,那就是长短了:
Ah, this is to do with how I created the DataFrame, not with how I was combining them. The long and the short of it is, if you are creating a frame using a loop and a statement that looks like this:
Frame = Frame.append(pandas.DataFrame(data = SomeNewLineOfData))
您必须忽略索引
Frame = Frame.append(pandas.DataFrame(data = SomeNewLineOfData), ignore_index=True)
否则在合并数据时您会遇到问题。
Or you will have issues later when combining data.
这篇关于 pandas 版的rbind的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!