前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >数据处理小技巧:根据指定内容提取行

数据处理小技巧:根据指定内容提取行

作者头像
用户7010445
发布2020-03-03 15:04:44
1.1K0
发布2020-03-03 15:04:44
举报
需求:

两个excel表格有共同的一列A,第一个表格数据少,第二个表格数据多,我现在想根据表1的A列将表2中包含A列的内容提取出来; 简单说就是提取表格中指定的行

数据

表1

image.png 表2

image.png

以上数据完全是胡编乱造!

第一种实现方法 excel vlookup 函数

将表2复制到表1里

代码语言:javascript
复制
=VLOOKUP(B2,G2:I12,2,FALSE)

image.png

  • 第一个参数是想要提取的字段
  • 第二个参数是数据表2的范围
  • 第三个参数是提取数据表2的哪一列
  • 第四个参数是TRUE或者FALSE,是否精确匹配
第二种实现方法 python 的 pandas 模块

代码

代码语言:javascript
复制
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")

结果

代码语言:javascript
复制
   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里

代码语言:javascript
复制
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自动化

第三种实现方法 R 语言

代码

代码语言:javascript
复制
df1<-read.table("clipboard",header=T)
df1
df2<-read.table("clipboard",header=T)
df2
df2[df2$cityname%in%df1$cityname,]

结果

代码语言:javascript
复制
> 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语言里如何根据指定内容提取行,这个应该是一种解决办法。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2019-12-26,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 小明的数据分析笔记本 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 需求:
  • 数据
  • 第一种实现方法 excel vlookup 函数
  • 第二种实现方法 python 的 pandas 模块
  • 第三种实现方法 R 语言
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档