我有 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 左连接的结果。
阅读熊猫文档了解更多信息。