将行从一个 excel 合并到特定位置的另一个 excel



我有 2 个 excel 文件,其中列名为"州/作物/地区"、"年份"、"季节"、"面积(公顷("、"产量(吨("、"产量(吨/公顷(">

在一个 excel 文件中,我有不同州的数据,在这些州下有不同作物的数据,也有不同地区 4 年的这些作物的数据。

在其他文件中,我也有相同类型的数据,但只有一年。

我想将那一年的数据粘贴到第二个文件中,下面是第一个文件中特定地区的年份。我想在特定地区的第一个文件中添加去年之后的 2017-18 年。

以下是我在两个 excel 文件中的数据示例。 第二个文件只有2017-18年的数据。我有不同的州,其中一个是"安达曼和尼科巴群岛",然后是不同的作物名称,其中一个是"Arhar/Tur",然后是不同的地区,如"1.North....."和"2.南....">

State/Crop/
District    Year    Season  Area (Hectare)  Production         Yield 
                                                 (Tonnes)    (Tonnes/Hectare)
Andaman and Nicobar Islands                 
Arhar/Tur                   
 1.NORTH AND MIDDLE ANDAMAN  
         2013-14    Rabi        1   3   3.00
     2014-15    Rabi        13.9    14  0.99
     2015-16    Rabi        0.5 0   0.60
     2016-17    Rabi        6.5 0   0.05
 2.SOUTH ANDAMANS    
         2013-14    Rabi        0.5 0   0.40
     2014-15    Rabi        1   0   0.40
     2015-16    Rabi        0.5 0   0.40

import pandas as pd
import numpy as np
data1 = pd.read_excel('file:///C:/Users/3004/Desktop/AP.xls')
data2 = pd.read_excel('file:///C:/Users/3004/Desktop/States.xls')
result = pd.merge(data1,data2[['State/Crop/District','Year','Area (Hectare)','Production (Tonnes)'
                               ,'Yield (Tonnes/Hectare)',on='State/Crop/District',how='inner']])

我也试过了,

vec<-c('Arhar/Tur','Wheat')
for (i in 1:length(vec)) 
  {if (AP$`State/Crop/District`==vec && AP$`State/Crop/District`==States$`State/Crop/District`)
  {rbind(AP$Year==2016-17,States$Year==2017-18)}}

你想要的是pd.concat而不是pd.merge

  • pd.concat([data1, data2])为您提供类似于 SQL 联合的结果。
  • data1.merge(data2, how='left')会给出类似于 SQL 左连接的结果。

阅读熊猫文档了解更多信息。

最新更新