将列 df 值附加到另一个 df

时间:2021-01-22 01:39:23

标签: python pandas

我有一个 df

df1:

| Index | data1 |
|:---- |:------:|
| t5  | 0    | 
| t8  | 0    |
| t10  | 1    |
| t50  | 3    |
| t55  | 5    |
.
.
.

我还有另一个 df

df2:

| Index | data2 |
|:---- |:------:|
| 1  | 2011/5/5    | 
| 2  | 2011/5/6    |
| 3  | 2011/5/7    |
| 4  | 2011/5/8    |
| 5  | 2011/5/9    |
| 6  | 2011/5/10    |
| 7  | 2011/5/11    |
| 8  | 2011/5/12    |
| 9  | 2011/5/13    |
| 10  | 2011/5/14    |
.
.
.

我想像这样将 df2['data2'] 的值附加到 df1:

df1 的索引 = t5 与 df2 的索引 = 5 df1 的索引 = t8 与 df2 的索引 = 8

结果: df1:

| Index | data1 | data2 |
|:---- |:------:| -----:|
| t5  | 0    | 2011/5/9 |
| t8  | 0    | 2011/5/12 |
| t10  | 1    | 2011/5/14 |
.
.
etc, etc

我将不胜感激。谢谢。

1 个答案:

答案 0 :(得分:1)

您可以更改 df2 的索引格式,然后使用 pandas.DataFrame.join

df1.join(df2.set_index('t' + df2.index.astype(str)))
#       data1      data2
#Index                  
#t5         0   2011/5/9
#t8         0  2011/5/12
#t10        1  2011/5/14

请注意,当您在 df2 上使用 pandas.DataFrame.set_index 时,您会得到:

df2.set_index('t' + df2.index.astype(str))
#           data2
#Index           
#t1      2011/5/5
#t2      2011/5/6
#t3      2011/5/7
#t4      2011/5/8
#t5      2011/5/9
#t6     2011/5/10
#t7     2011/5/11
#t8     2011/5/12
#t9     2011/5/13
#t10    2011/5/14

所以你可以直接用 df1 加入。