【问题标题】:concat two dataframe using python使用python连接两个数据框
【发布时间】:2015-07-08 06:30:54
【问题描述】:

我们有一个类似的数据框

-0.140447131    0.124802527 0.140780106
0.062166349    -0.121484447 -0.140675515
-0.002989106    0.13984927  0.004382326

另一个为

1
1
2

我们需要像这样连接两个数据框

-0.140447131    0.124802527 0.140780106  1
0.062166349    -0.121484447 -0.140675515 1
-0.002989106    0.13984927  0.004382326  2

【问题讨论】:

  • 两个数据框有共同的索引?

标签: python python-3.x pandas dataframe


【解决方案1】:

使用 pd.concat 并指定轴等于 1(行):

df_new = pd.concat([df1, df2], axis=1)

>>> df_new
          0         1         2  0
0 -0.140447  0.124803  0.140780  1
1  0.062166 -0.121484 -0.140676  2
2 -0.002989  0.139849  0.004382  3

【讨论】:

  • 如果索引不常见那么这将堆叠行,你需要通过ignore_index=True
【解决方案2】:

假设你的第一个数据框是这样的

In [281]: df1
Out[281]:
          a         b         c
0 -0.140447  0.124803  0.140780
1  0.062166 -0.121484 -0.140676
2 -0.002989  0.139849  0.004382

而且,第二个喜欢,

In [283]: df2
Out[283]:
   d
0  1
1  1
2  2

然后您可以使用df2df1 创建新列

In [284]: df1['d_new'] = df2['d']

In [285]: df1
Out[285]:
          a         b         c  d_new
0 -0.140447  0.124803  0.140780      1
1  0.062166 -0.121484 -0.140676      1
2 -0.002989  0.139849  0.004382      2

假设两个数据帧有共同的索引

【讨论】:

    猜你喜欢
    • 2014-03-23
    • 2021-10-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-09-27
    • 2018-05-10
    • 2019-01-05
    相关资源
    最近更新 更多