将列添加到同一DataFram中列的末尾

2024-06-14 14:19:32 发布

您现在位置:Python中文网/ 问答频道 /正文

我现在有一个数据帧,我从互联网上用美丽的汤。但是它的设置是网格化的,而不是一个连续的列表。 如行以月为单位,列以年为单位。在

然而,我正在努力使它成为一个连续的列,因为这个数据将与其他数据,也就是出生与死亡进行对比。在

下面是我目前使用的测向仪的一个例子

      2010        2011      2013     2014
Jan  1.474071 -0.064034  0.781836 -1.282782
Feb -1.071357  0.441153  0.583787  2.353925
Mar  0.221471 -0.744471  1.729689  0.758527
Apr -0.964980 -0.845696  1.846883 -1.340896
May -1.328865  1.682706  0.888782 -1.717693
Jun  0.228440  0.901805  0.520260  1.171216
Jul -1.197071 -1.066969 -0.858447 -0.303421
Aug  0.306996 -0.028665  1.574159  0.384316
Sep -0.014805 -0.284319 -1.461665  0.650776
Oct  1.588931  0.476720 -0.242861  0.473424
Nov -0.014805 -0.284319 -1.461665  0.650776
Dec  0.964980 -0.845696  1.846883 -1.340896

但是当我尝试append(使用ignore index)时

^{pr2}$

但是我试图将整个数据集放入一个连续的列中,例如

  00    1.474071   
  01   -1.071357    
  02    0.221471     
  03   -0.964980   
  04   -1.328865    
  05    0.228440    
  06   -1.197071   
  07    0.306996   
  08   -0.014805   
  09    1.588931  
  11   -0.014805   
  12   -0.064034 
  13    0.441153  
  14   -0.744471 
  15   -0.845696 
  16    1.682706 

如何将所有四列合并为一列?在


Tags: 数据列表单位互联网aprjunmarsep
2条回答

您可以创建一个col列表,并调用^{}来匿名化数据,这样它就不会试图在列上对齐,然后在此列表上调用^{},传递{}创建一个新的索引,否则您将得到重复的月份名称作为索引值:

In [228]:

cols = [df[col].squeeze() for col in df]
pd.concat(cols, ignore_index=True)
Out[228]:
0     1.474071
1    -1.071357
2     0.221471
3    -0.964980
4    -1.328865
5     0.228440
6    -1.197071
7     0.306996
8    -0.014805
9     1.588931
10   -0.014805
11    0.964980
12   -0.064034
13    0.441153
14   -0.744471
15   -0.845696
16    1.682706
17    0.901805
18   -1.066969
19   -0.028665
20   -0.284319
21    0.476720
22   -0.284319
23   -0.845696
24    0.781836
25    0.583787
26    1.729689
27    1.846883
28    0.888782
29    0.520260
30   -0.858447
31    1.574159
32   -1.461665
33   -0.242861
34   -1.461665
35    1.846883
36   -1.282782
37    2.353925
38    0.758527
39   -1.340896
40   -1.717693
41    1.171216
42   -0.303421
43    0.384316
44    0.650776
45    0.473424
46    0.650776
47   -1.340896
dtype: float64

另一种方法是unstack这个DataFrame。然后使用reset_index(drop=True)将索引重置为默认的整数索引:

df.unstack().reset_index(drop=True)

相关问题 更多 >