如何在 Pandas 中将数据帧堆叠在一起

Joe*_*oey 6 python dataframe pandas

我有一个包含 96 列的数据框:

df.to_csv('result.csv')
Run Code Online (Sandbox Code Playgroud)

出(优秀):

    Run 1   Run 2   Run 3   Run 4   Run 5   Run 6   Run 7   Run 8   Run 9   Run 10  Run 11  Run 12  Run 13  Run 14  Run 15  Run 16  Run 17  Run 18  Run 19  Run 20  Run 21  Run 22  Run 23  Run 24  Run 25  Run 26  Run 27  Run 28  Run 29  Run 30  Run 31  Run 32  Run 33  Run 34  Run 35  Run 36  Run 37  Run 38  Run 39  Run 40  Run 41  Run 42  Run 43  Run 44  Run 45  Run 46  Run 47  Run 48  Run 49  Run 50  Run 51  Run 52  Run 53  Run 54  Run 55  Run 56  Run 57  Run 58  Run 59  Run 60  Run 61  Run 62  Run 63  Run 64  Run 65  Run 66  Run 67  Run 68  Run 69  Run 70  Run 71  Run 72  Run 73  Run 74  Run 75  Run 76  Run 77  Run 78  Run 79  Run 80  Run 81  Run 82  Run 83  Run 84  Run 85  Run 86  Run 87  Run 88  Run 89  Run 90  Run 91  Run 92  Run 93  Run 94  Run 95  Run 96
12  5194322.07  5195697.94  5195730.25  5196009.11  5195054.02  5193386.44  5192664.99  5193381.71  5193652.29  5193637.02  5191110.57  5190267.47  5190739.45  5190416.85  5189592.97  5188898.89  5188461.01  5188735.44  5189156.83  5188870.35  5188306.12  5187746.51  5188023.45  5187536.91  5188085.85  5188634.95  5187861.42  5188124.97  5187076.75  5189218.62  5189052.51  5188571.63  5188486.76  5188502.68  5188318.63  5188512.5   5188409.83  5188250.86  5188885.18  5188999.83  5189365.09  5190159.72  5189771.1   5190136.3   5191179.72  5191256.35  5191147.97  5191712.32  5192430.88  5193407.95  5192603.89  5192248.7   5192197.65  5193096.79  5193005.25  5193985.8   5193451.22  5193489.16  5193562.72  5194621.43  5194170.84  5194198.19  5194866.16  5194030.81  5194421.67  5193745.31  5195458.37  5196342.62  5194881.29  5195036.46  5193627.87  5194470.9   5195017.44  5194402.87  5194659.24  5194751.51  5195016.87  5194802.11  5195467.68  5194654.04  5195622.23  5194709.45  5195050.77  5195097.58  5195987.22  5195831.3   5194776.48  5193605.12  5194317.87  5194089.21  5194563.64  5193895.14  5194140.95  5193791.85  5193915.21  5194343.34
13  1453304.43  1454792.33  1454807.96  1454768.09  1455077.49  1454644.59  1454545.94  1454930.93  1455214.85  1455342.12  1455188.92  1454972.08  1455358.05  1455533.45  1455208.56  1454913.89  1455124.45  1454644.83  1455071.25  1454812.46  1454838.9   1454842.33  1454895.52  1454838.55  1454888.25  1455024.08  1454624.57  1455159.29  1454889.65  1454906.92  1454789.36  1454579.06  1455060.12  1455108.26  1455289.8   1455269.54  1455227.93  1455734.55  1455846 1455774.16  1456130.24  1456289.94  1455711.1   1456447.68  1456588.78  1456796.61  1456867.04  1457081.75  1457274.68  1457155.16  1457782.73  1457065.11  1457459.15  1457347.08  1457837.54  1457999.87  1458171.82  1458241.76  1458320.08  1458622.22  1458574.79  1458586.67  1458701.91  1458749.17  1458869.01  1458755.66  1458885 1459167.12  1458881.12  1459110.4   1458918 1459297.49  1459375.28  1459338.09  1459413.22  1459726.96  1459926.75  1459943.81  1460193.37  1460242.02  1460274.7   1460319.25  1460494.5   1460347.8   1460589.02  1460436.82  1460754.06  1460643.79  1460803.29  1460817.97  1460948.1   1460903.97  1460944.45  1460874.04  1460929.33  1461072.84
14  193379.75   193027.34   192806.25   192501.2    192602.7    192477.86   192402.72   192408.76   192421.74   192400.59   192345.37   192312.98   192331.79   192357.29   192277.84   192270.06   192232.67   192170.09   192216.06   192182.3    192163.13   192145.32   192164.63   192157.59   192134.08   192172.82   192098.36   192146.81   192106.65   192082.12   192057.73   192065.45   192080.46   192128.27   192096.82   192120.97   192081.97   192166.45   192157.38   192121.78   192203.97   192215.73   192098.89   192181.45   192211.12   192234.93   192245.5    192282.35   192290.05   192278.03   192370.19   192250.39   192308.68   192264.65   192339.55   192365.62   192394.12   192385.72   192403.42   192431.52   192408.2    192414.77   192419.74   192424.98   192432.85   192422.79   192444.94   192454.58   192456.89   192449  192451.98   192507.83   192490.77   192504.55   192520.85   192539.33   192549.03   192578.96   192618.21   192638.83   192629.15   192617.57   192651.62   192626.81   192649.6    192636.68   192703.22   192661.42   192687.33   192704.48   192729.77   192731.6    192742.22   192701.82   192729.55   192743.99
15  157553.12   157252.95   157080.77   156941.24   156887.86   156776.95   156669.69   156664.82   156695.03   156652.3    156653.55   156576.01   156586.19   156620.33   156558.26   156539  156501.76   156445.28   156465.98   156435.93   156436.62   156444.92   156422.48   156446.25   156426.4    156447.14   156397.15   156421.85   156391.94   156370.94   156337.46   156364.73   156380.6    156399.43   156389.75   156386.21   156346.02   156453.62   156442.94   156392.71   156436.89   156449.56   156363.24   156443.5    156448.72   156429.21   156479.57   156498  156535.45   156528.7    156603.81   156486.44   156524.97   156482.7    156558.25   156574.41   156585.45   156572.05   156610.77   156638.11   156607.3    156600.19   156626.51   156605.06   156637.24   156611.04   156625.38   156635.17   156644.67   156634.81   156635.81   156690.93   156666.67   156700.49   156702.44   156705.8    156723.19   156746.24   156784.77   156783.37   156816.63   156767.56   156820.49   156805.69   156799.75   156813.77   156847.63   156837.49   156841.06   156833.21   156873.62   156877.83   156877.8    156836.4    156876.97   156889.26
16  98894.09    98661.73    98517.97    98463.94    98381.17    98335.16    98248.41    98271.91    98279.43    98235.13    98240.75    98182.86    98200.03    98201.4 98172.12    98146.85    98131.82    98103.18    98111.26    98070.4 98089.39    98103.34    98063.18    98087.61    98055.12    98101.77    98064.3 98073.7 98044.23    98032.22    98024.03    98035.75    98047.34    98065.01    98070.35    98056.62    98025.54    98091.08    98101.41    98052.04    98079.79    98094.76    98012.52    98088.28    98083.11    98091.65    98097.78    98111.77    98133.52    98135.26    98181.02    98130.98    98142.39    98103.2 98151.5 98163.1 98181.58    98161.11    98181.91    98207.14    98176.71    98194   98203.63    98178.89    98213.34    98179.43    98188.91    98209   98224.92    98202.98    98199.12    98239.48    98228.15    98251.45    98263.44    98253.43    98253.53    98293.22    98310.56    98299.46    98324.44    98304.57    98320.92    98331.45    98315.52    98316.35    98350.96    98356.69    98336.74    98322.17    98356.82    98367.58    98355.18    98342.84    98346.7 98374.95
17                                                                                                                                                                                                                                                                                                                                                                                              
12  3129.52 3147.16 3160.49 3171.33 3214.77 3236.69 3275    3280.86 3287.46 3302.41 3331.16 3375.36 3371.95 3378.69 3377.02 3373.65 3397.39 3388.79 3416.8  3457.74 3447.79 3456.51 3455.32 3495.66 3492.27 3505.96 3510.87 3533.18 3522.81 3524.65 3572.99 3575.17 3581.11 3579.16 3584.39 3601.6  3591.13 3619.1  3581.45 3597.28 3610.98 3627.1  3641.58 3639.8  3628.65 3655.72 3649.4  3648.33 3676.89 3661.96 3697.21 3689.05 3693.71 3710.29 3734.39 3732.68 3732.57 3760.45 3753.94 3778.77 3792.45 3764.17 3804.36 3804.46 3807.49 3817.46 3854.72 3820.18 3844.23 3844.19 3856.38 3856.53 3856.95 3905.39 3868.66 3898.41 3908.94 3905.1  3942.19 3941.65 3957.9  3936.05 3953.8  3952.5  3986.09 3972.33 3974.86 3962.69 4006.6  4007.01 4013.11 4036.94 3981.75 3982.69 3982.16 4017.66
13  2946817.59  2944662.04  2941123.24  2940256.46  2935558.38  2931746.01  2928978.21  2928741.48  2926931.72  2926556.07  2924090.79  2923586 2923616.24  2921712.71  2921325.33  2921606.4   2921049.04  2920501.43  2920219.82  2919483.39  2919055.94  2918261.89  2917710.17  2918281.08  2917460.36  2918447.78  2917467.81  2917025.06  2914725.09  2917582.26  2916970.03  2917224.28  2917123.34  2916758.73  2916377.49  2916374.34  2915134.44  2916170.14  2916194.3   2916438.93  2916841.46  2916923.27  2916298.61  2916843.73  2917128.84  2916505.26  2917823.72  2917249.33  2918275.17  2918657.92  2918593.87  2918092.17  2916450.26  2917383.96  2917260.84  2918251.2   2916669.62  2917421.6   2916740.6   2917259.97  2916818.62  2917508.43  2918006.44  2917757.21  2918060.88  2915855.65  2918151.83  2917179.65  2918271.42  2917682.08  2916528.9   2916751.82  2916524.81  2916802.18  2915576.36  2916073.58  2916285.37  2915885.03  2916843.4   2916897 2916226.64  2916329.2   2915110.13  2914458.88  2916433.5   2915075.24  2915229.63  2913743.19  2914563.32  2913637.85  2914569.65  2914736.45  2913404.01  2913008.04  2913627.33  2914075.7
14  230608.01   230312.12   229832.18   229627.99   229210.49   228632.32   228363.82   228331.31   228218.46   228144.81   227964.12   227953.21   228026.95   227840.86   227741.13   227753.98   227740.91   227540.28   227557.01   227318.88   227512.95   227296.66   227285.16   227307.5    227240.68   227426.04   227221.35   227178.03   226972.82   227183.08   227053.52   227103.26   227226.78   227095.99   227295.09   227357.08   226998.07   227155.45   227099.14   227256.82   227092.64   227274.71   227046.17   227211.35   227271.17   227113.9    227296.57   227410.79   227169.76   227314.2    227496.21   227252.71   227267.55   227308.58   227361.06   227333.64   227178.12   227358.18   227154.37   227278.39   227226.46   227220.65   227276.21   227336.72   227239.63   227201.77   227298.1    227286.38   227398.71   227336.91   227365.81   227255.2    227241.09   227129.99   227074.28   227152.61   227331.13   227349.15   227404.26   227317.63   227228.69   227163.85   226953.01   226922.52   227207.38   227141.31   227117.31   227162.19   227210.19   227078.05   227066.16   227226.41   226951.75   226963.37   226956.1    227106.71
15  25607.66    25705.26    25483.12    25478.82    25410.26    25384.14    25296.8 25297.31    25185.21    25310.15    25275.49    25246.13    25249.32    25322.94    25258.49    25231.09    25294.81    25282.72    25211.84    25373.49    25201.84    25277.95    25356.21    25331.92    25191.69    25268.33    25359.69    25177.89    25275.49    25293.96    25212.5 25256.51    25209.77    25207.68    25245.21    25130.97    25246.49    25073.61    25141.74    25191.55    25275.35    25218.04    25234.66    25144.64    25294.39    25197.99    25252.66    25029.12    25239.01    25241.82    25299.99    25249.92    25112.44    25140.67    25247.73    25235.76    25316.81    25188.8 25122.93    25186.04    25149.75    25127.59    25175.98    25093.1 25224.16    25166.84    25170.27    25203.5 25258.65    25192.54    25154.19    25180.35    25197.78    25340.6 25224.43    25173.91    25205.17    25253.24    25325.32    25459.4 25186.6 25238.33    25237.85    25130.99    25303.22    25188.74    25226.41    25190.27    25082.58    25059.87    25295.12    25197.11    25222.02    25208.2 25173.89    25197.88
Run Code Online (Sandbox Code Playgroud)

抱歉(从excel复制),标签和数据不一致。

基本上,我想把这个数据帧分成 8 个单元......所以对于第一个单元,Unit 1,我想要 12 列......运行 1 到 12。等等。第 8 单元将运行 85 - 96。

我刚刚重命名了 8 个数据框并指定了我想从主数据框 (df) 中获取的列

这是我的代码:

df1 = df.ix[:,0:7]
df2 = df.ix[:,12:24]
df3 = df.ix[:,24:36]
df4 = df.ix[:,36:48]
df5 = df.ix[:,48:60]
df6 = df.ix[:,60:72]
df7 = df.ix[:,72:84]
df8 = df.ix[:,84:96]

pieces = (df1,df2,df3,df4,df5,df6,df7,df8)
Run Code Online (Sandbox Code Playgroud)

最后,我使用 concat 将 8 个数据帧连接在一起(堆叠在彼此之上)。然而,它的输出有点失真,而且不正常。

df_final = pd.concat(pieces, ignore_index = True)

print df_final
Run Code Online (Sandbox Code Playgroud)

出去:

    Run 1   Run 13  Run 14  Run 15  Run 16  Run 17  Run 18  Run 19  Run 2   Run 20  Run 21  Run 22  Run 23  Run 24  Run 25  Run 26  Run 27  Run 28  Run 29  Run 3   Run 30  Run 31  Run 32  Run 33  Run 34  Run 35  Run 36  Run 37  Run 38  Run 39  Run 4   Run 40  Run 41  Run 42  Run 43  Run 44  Run 45  Run 46  Run 47  Run 48  Run 49  Run 5   Run 50  Run 51  Run 52  Run 53  Run 54  Run 55  Run 56  Run 57  Run 58  Run 59  Run 6   Run 60  Run 61  Run 62  Run 63  Run 64  Run 65  Run 66  Run 67  Run 68  Run 69  Run 7   Run 70  Run 71  Run 72  Run 73  Run 74  Run 75  Run 76  Run 77  Run 78  Run 79  Run 80  Run 81  Run 82  Run 83  Run 84  Run 85  Run 86  Run 87  Run 88  Run 89  Run 90  Run 91  Run 92  Run 93  Run 94  Run 95  Run 96
0   5194322.07                              5195697.94                                          5195730.25                                          5196009.11                                          5195054.02                                          5193386.44                                          5192664.99                                                                                                          
1   1453304.43                              1454792.33                                          1454807.96                                          1454768.09                                          1455077.49                                          1454644.59                                          1454545.94                                                                                                          
2   193379.75                               193027.34                                           192806.25                                           192501.2                                            192602.7                                            192477.86                                           192402.72                                                                                                           
3   157553.12                               157252.95                                           157080.77                                           156941.24                                           156887.86                                           156776.95                                           156669.69                                                                                                           
4   98894.09                                98661.73                                            98517.97                                            98463.94                                            98381.17                                            98335.16                                            98248.41                                                                                                            
5                                                                                                                                                                                                                                                                                                                                                                           
6   3129.52                             3147.16                                         3160.49                                         3171.33                                         3214.77                                         3236.69                                         3275                                                                                                            
7   2946817.59                              2944662.04                                          2941123.24                                          2940256.46                                          2935558.38                                          2931746.01                                          2928978.21                                                                                                          
8   230608.01                               230312.12                                           229832.18                                           229627.99                                           229210.49                                           228632.32                                           228363.82                                                                                                           
9   25607.66                                25705.26                                            25483.12                                            25478.82                                            25410.26                                            25384.14                                            25296.8                                                                                                         
10      5190739.45  5190416.85  5189592.97  5188898.89  5188461.01  5188735.44  5189156.83      5188870.35  5188306.12  5187746.51  5188023.45  5187536.91                                                                                                                                                                                                                                                                                                                  
11      1455358.05  1455533.45  1455208.56  1454913.89  1455124.45  1454644.83  1455071.25      1454812.46  1454838.9   1454842.33  1454895.52  1454838.55                                                                                                                                                                                                                                                                                                                  
12      192331.79   192357.29   192277.84   192270.06   192232.67   192170.09   192216.06       192182.3    192163.13   192145.32   192164.63   192157.59                                                                                                                                                                                                                                                                                                                   
13      156586.19   156620.33   156558.26   156539  156501.76   156445.28   156465.98       156435.93   156436.62   156444.92   156422.48   156446.25                                                                                                                                                                                                                                                                                                                   
14      98200.03    98201.4 98172.12    98146.85    98131.82    98103.18    98111.26        98070.4 98089.39    98103.34    98063.18    98087.61                                                                                                                                                                                                                                                                                                                    
15                                                                                                                                                                                                                                                                                                                                                                          
16      3371.95 3378.69 3377.02 3373.65 3397.39 3388.79 3416.8      3457.74 3447.79 3456.51 3455.32 3495.66                                                                                                                                                                                                                                                                                                                 
17      2923616.24  2921712.71  2921325.33  2921606.4   2921049.04  2920501.43  2920219.82      2919483.39  2919055.94  2918261.89  2917710.17  2918281.08                                                                                                                                                   

J R*_*ape 6

你已经快到了。

问题是每个子数据框中的列名称都不同。因此,当 pandas 执行 操作时concat,它不仅仅将数据帧附加到底部,它还会扩展数据帧以具有具有正确名称的新列,然后附加行。

您可以通过重命名子数据框中的列来解决这个问题,例如

for sub_df in pieces:
    sub_df.columns=range(12)
Run Code Online (Sandbox Code Playgroud)

我认为,请注意 df2包含df8您想要的内容。由于某种原因,您df1只包含前 7 列,而不是 12 列。我暂时认为这是一个拼写错误。

产生完整的工作代码(我将您的输入数据复制到名为 的文件中'data1.csv'

import pandas as pd
import numpy as np    

df = pd.read_csv('data1.csv')

df1 = df.ix[:,0:12]
df2 = df.ix[:,12:24]
df3 = df.ix[:,24:36]
df4 = df.ix[:,36:48]
df5 = df.ix[:,48:60]
df6 = df.ix[:,60:72]
df7 = df.ix[:,72:84]
df8 = df.ix[:,84:96]

pieces = (df1,df2,df3,df4,df5,df6,df7,df8)

# Give the columns the same labels in each sub dataframe
# I've used numbers for convenience - you can give more descriptive names if you want
for sub_df in pieces:
    sub_df.columns=range(12)

df_final = pd.concat(pieces, ignore_index = True)

print df_final
Run Code Online (Sandbox Code Playgroud)

关于订购的最后说明

您注意到示例中列的意外排序。这不会影响我的解决方案,但为了完整性我会解释它。

输出中的列采用所谓的“词典顺序”。这是在 Python(和其他语言)中对包含数字的字符串进行排序时的常见问题。它们的排序顺序看起来几乎正确,但不知何故却是 1, 10, 11 ... 19, 2, 20 等等。这是因为排序像字典一样逐个字母排序,但0to9位于前面a