Pandas梅尔金2号

2024-05-17 06:24:36 发布

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

我有两个数据帧 第一

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>

Tags: tofromrightnanlefttrv2td
1条回答
网友
1楼 · 发布于 2024-05-17 06:24:36

你试过下面的代码吗

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

基本上,您只需要说哪些列仍然要作为索引保留在新的数据帧中,方法outer将合并一个完全联接

相关问题 更多 >