两个excel表格有共同的一列A,第一个表格数据少,第二个表格数据多,我现在想根据表1的A列将表2中包含A列的内容提取出来; 简单说就是提取表格中指定的行
表1
image.png 表2
image.png
以上数据完全是胡编乱造!
将表2复制到表1里
=VLOOKUP(B2,G2:I12,2,FALSE)
image.png
代码
table_a = pd.read_excel("A.xlsx",sheet_name = "Sheet1",converts={'cityid':str})
table_b = pd.read_excel("B.xlsx",sheet_name = "Sheet1",converts={'cityid':str})
table_a.merge(right = table_b,how='left',left_on="cityname",right_on="cityname")
结果
cityid cityname GDP Population
0 1111 北京 200 500
1 1112 南京 500 248
2 1113 唐山 100 139
3 1114 保定 300 168
4 1115 苏州 450 547
5 1116 上海 260 625
6 1117 西安 750 758
或者将结果写到excel里
table_c = table_a.merge(right = table_b,how='left',left_on="cityname",right_on="cityname")
table_c.to_excel("C.xlsx",index=False)
以上代码参考简书文章 利用Python将vlookup自动化
代码
df1<-read.table("clipboard",header=T)
df1
df2<-read.table("clipboard",header=T)
df2
df2[df2$cityname%in%df1$cityname,]
结果
> df1<-read.table("clipboard",header=T)
> df1
cityid cityname
1 1111 北京
2 1112 南京
3 1113 唐山
4 1114 保定
5 1115 苏州
6 1116 上海
7 1117 西安
> df2<-read.table("clipboard",header=T)
> df2
cityname GDP Population
1 北京 200 500
2 南京 500 248
3 唐山 100 139
4 保定 300 168
5 苏州 450 547
6 上海 260 625
7 西安 750 758
8 重庆 690 747
9 成都 345 625
10 常州 285 325
11 秦皇岛 175 145
> df2$cityname%in%df1$cityname
[1] TRUE TRUE TRUE TRUE TRUE TRUE TRUE FALSE FALSE FALSE FALSE
> df2[df2$cityname%in%df1$cityname,]
cityname GDP Population
1 北京 200 500
2 南京 500 248
3 唐山 100 139
4 保定 300 168
5 苏州 450 547
6 上海 260 625
7 西安 750 758
自己之前一直没有搞明白R语言里如何根据指定内容提取行,这个应该是一种解决办法。