熊猫mergin 2数据框

时间:2019-06-06 08:43:55

标签: python pandas

我有2个数据框 第一

summ    From Пк+    To Пк+  Widht   Distance    V1_left, м3 V2_left, м3
Nan     150         200      3        50           10          50
Nan     250         400      3        150          40          40
sum0                                  200          50          90
Nan     1000        1200     4        200          50          50
sum1                                  200          50          50
Nan     2300        2500     5        200          50          50
        2600        2700     5        100          50          50
        2700        2800     5        100          50          50
sum2                                  400          150         150

第二

summ    From Пк+    To Пк+  Widht   Distance    V1_right, м3    V2_right[enter image description here][1], м3
Nan      150         200    3          50          10         50
Nan      250         400    3          150         40        40
Nan      500         600    3          100         70        30
Nan      600         700    3          100         100       20
Nan      800         900    3          100         130       10
sum0                                   500         350       150
Nan      1100        1200   4          100         50        50
Nan      1500        1800   4          300         50        50
sum1                                   400         100       100
Nan      2300        2500   5          200         50         50
sum2                                   200         50         50

我已经尝试过,pd.merge,concat,但是仍然无法得到我需要的结果

<table><tbody><tr><th>summ</th><th>From Пк+</th><th>To Пк+</th><th>Widht</th><th>Distance</th><th>V1_left, м3</th><th>V2_left, м3</th><th>From Пк+</th><th>To Пк+</th><th>Widht</th><th>Distance</th><th>V1_right, м3</th><th>V2_right, м3</th></tr><tr><td>Nan</td><td>150</td><td>200</td><td>3</td><td>50</td><td>10</td><td>50</td><td>150</td><td>200</td><td>3</td><td>50</td><td>10</td><td>50</td></tr><tr><td>Nan</td><td>250</td><td>400</td><td>3</td><td>150</td><td>40</td><td>40</td><td>250</td><td>400</td><td>3</td><td>150</td><td>40</td><td>40</td></tr><tr><td>Nan</td><td>500</td><td>600</td><td>3</td><td>100</td><td>70</td><td>30</td><td>Nan</td><td>Nan</td><td>Nan</td><td>Nan</td><td>Nan</td><td>Nan</td></tr><tr><td>Nan</td><td>600</td><td>700</td><td>3</td><td>100</td><td>100</td><td>20</td><td>Nan</td><td>Nan</td><td>Nan</td><td>Nan</td><td>Nan</td><td>Nan</td></tr><tr><td>Nan</td><td>800</td><td>900</td><td>3</td><td>100</td><td>130</td><td>10</td><td>Nan</td><td>Nan</td><td>Nan</td><td>Nan</td><td>Nan</td><td>Nan</td></tr><tr><td>sum0</td><td> </td><td> </td><td> </td><td>500</td><td>350</td><td>150</td><td> </td><td> </td><td> </td><td>200</td><td>50</td><td>90</td></tr><tr><td>Nan</td><td>1100</td><td>1200</td><td>4</td><td>100</td><td>50</td><td>50</td><td>1000</td><td>1200</td><td>4</td><td>200</td><td>50</td><td>50</td></tr><tr><td>Nan</td><td>1500</td><td>1800</td><td>5</td><td>300</td><td>50</td><td>50</td><td>Nan</td><td>Nan</td><td>Nan</td><td>Nan</td><td>Nan</td><td>Nan</td></tr><tr><td>sum1</td><td> </td><td> </td><td> </td><td>100</td><td>50</td><td>50</td><td> </td><td> </td><td> </td><td>200</td><td>50</td><td>50</td></tr><tr><td>Nan</td><td>2300</td><td>2500</td><td>5</td><td>200</td><td>50</td><td>50</td><td>2300</td><td>2500</td><td>5</td><td>200</td><td>50</td><td>50</td></tr><tr><td>Nan</td><td>Nan</td><td>Nan</td><td>Nan</td><td>Nan</td><td>Nan</td><td>Nan</td><td>2600</td><td>2700</td><td>5</td><td>100</td><td>50</td><td>50</td></tr><tr><td>Nan</td><td>Nan</td><td>Nan</td><td>Nan</td><td>Nan</td><td>Nan</td><td>Nan</td><td>2700</td><td>2800</td><td>5</td><td>100</td><td>50</td><td>50</td></tr><tr><td>sum2</td><td> </td><td> </td><td> </td><td>200</td><td>50</td><td>50</td><td> </td><td> </td><td> </td><td>400</td><td>150</td><td>150</td></tr><tr><td>400</td><td>150</td><td>150</td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td><td> </td></tr></tbody></table>

1 个答案:

答案 0 :(得分:0)

您尝试了以下代码吗?

import pandas as pd
df = pd.merge(df1, df2, on=['Summ', 'From', 'Nk+', 'To', 'Nk+'], how='outer')

基本上,oyu只需说出您仍要保留在新数据框中的哪些列作为索引,方法“外部”将合并一个完整的联接。