我有两个excel文件,其中列的名称为 ‘州/作物/地区’、‘年’、‘季节’、‘面积(公顷)’、‘产量(吨)’、‘产量(吨/公顷)’
在一个excel文件中,我有4年来不同州和州下不同作物的数据,以及不同地区这些作物的数据
在另一个文件中,我也有同样的数据,但只有一年
我想将第二个文件中这一年的数据粘贴到第一个文件中特定地区的年份下面。我想在特定地区的第一份文件中添加上一年之后的2017-18年
下面是我在两个excel文件中的数据示例。第二份文件仅包含2017-18年的数据。我有不同的州,其中一个是“安达曼和尼科巴群岛”,然后是不同的作物名称,其中一个是“阿尔哈尔/图尔”,然后是不同的地区,如“1.北部…”和“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
Python
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左连接的结果李>阅读pandas doc了解更多信息
相关问题 更多 >
编程相关推荐