【问题标题】:How to join two dataframes using index in pandas?如何在熊猫中使用索引连接两个数据框?
【发布时间】:2019-06-26 00:07:35
【问题描述】:

我有以下数据框 df1

         value
0     0.164560
1     0.000000
2     0.350000
3     0.700000
    ...
3778  0.350000
3779  0.000000
3780  0.137500
3781  0.253333

和另一个数据框 df2

                 0             1
2669  1.744478e-05  2.323815e-05
5417  2.274561e-06  5.808474e-04
6102  2.220705e-06  1.605110e-04
4033  2.018643e-04  2.867235e-05
4877  4.549740e-07  6.233500e-04
             ...
4470  2.761791e-06  6.504309e-05
5071  1.261781e-06  8.010408e-05
3635  4.810822e-05  3.325764e-05
5378  1.133819e-04  4.934986e-05

通过连接两个数据框,我希望 df2 中的索引成为连接数据框中的 id 列,方法是从 df2 中删除第 0 列和第 1 列。所以想要的输出看起来像

  id         value
2669     0.164560
5417     0.000000
6102     0.350000
4033     0.700000
    ...
4470     0.350000
5071     0.000000
3635     0.137500
5378     0.253333

我试过了

df3 = pd.concat([df2, df1], ignore_index=True)

使用 pd.concat 连接数据帧的输出

         value             0             1
0     0.164560           NaN           NaN
1     0.000000           NaN           NaN
2     0.350000           NaN           NaN
3     0.700000           NaN           NaN
          ....
7382       NaN  4.165176e-05  2.615312e-05
7383       NaN  2.357132e-05  5.779454e-05
7384       NaN  1.761602e-06  7.960426e-05
7385       NaN  9.162049e-11  1.627316e-04

【问题讨论】:

    标签: python pandas dataframe


    【解决方案1】:

    如果两个 DataFrame 的长度相同,则只为新列分配一个索引:

    df1['id'] = df2.index
    print (df1)
    

    或者:

    df1 = df1.assign(id = df2.index)
    print (df1)
    

    【讨论】:

    • 我收到ValueError: Length of values does not match length of index 如何比较数据帧的索引长度?
    • @SamuelMideksa - 抱歉,我需要更多信息。如果数据长度不同,为什么需要将索引从df2 添加到 df1 列?
    • 我必须从 df1 中删除一些行以使索引相等现在可以使用但不是添加“id”列,而是可以实际获取“id”列作为 df1 中的索引值?
    • stackoverflow.com/questions/54687073/… 如果你看一下这个问题,我确实需要帮助?
    • @SamuelMideksa - 当然添加了答案。而是 2 的情况,因为不确定是否需要将 1 添加到索引或新列。
    猜你喜欢
    • 2022-10-06
    • 1970-01-01
    • 1970-01-01
    • 2020-10-31
    • 1970-01-01
    • 2021-05-11
    • 2013-08-14
    • 2015-08-15
    相关资源
    最近更新 更多