首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用python基于子串将数据从一个工作表导入到另一个工作表

如何使用python基于子串将数据从一个工作表导入到另一个工作表
EN

Stack Overflow用户
提问于 2018-09-05 17:47:05
回答 1查看 40关注 0票数 2

我的目标是根据子字符串将存储为DataFrame df1的数据导入到sheet1中。

我的DataFrame如下所示:

代码语言:javascript
复制
df:[2 x 8]

    ordercode           quantity
PMC11-AA1L1FAVWJA        20
PMC21-AA1A1CBVXJA        10
PMP11-AA1L1FAWJJ          5
PMP21-AA1A1FBWJJ          3
PMP23-AA1A1FA3EJ+JA       1
PTP31B-AA3D1HGBVXJ        1
PTC31B-AA3D1CGBWBJA       2
PTP33B-AA3D1HGB1JJ        10

但是我想要的结果应该是

代码语言:javascript
复制
Sheet2_df2:"1C"
   ordercode           quantity
PMC21-AA1A1CBVXJA        10
PTC31B-AA3D1CGBWBJA       2

Sheet3_df3:"1F"
PMP11-AA1L1FAWJJ          5
PMP21-AA1A1FBWJJ          3
PMC11-AA1L1FAVWJA        20

在excel中,只需创建一个条件和使用IF函数即可轻松实现。B1:"1C“

代码语言:javascript
复制
 =IF(Sheet1!A2=$B$1,Sheet1!A2,"")

并且可以复制到所有单元。

我不知道如何在python中执行此操作。任何解决方案都将不胜感激。

EN

回答 1

Stack Overflow用户

发布于 2018-09-05 19:14:31

首先将数据读取到Pandas数据帧中:

代码语言:javascript
复制
df = pd.read_excel('file.xlsx')

然后在pd.Series.str.contains中使用字典理解

代码语言:javascript
复制
substrings = ['1C', '1F']

d = {x: df[df['ordercode'].str.contains(x, na=False, regex=False)] for x in substrings]

然后,您可以通过子串密钥访问数据帧,例如d['1C']。如果愿意,可以将字典中的每个值导出到单独的工作表或工作簿。例如:

代码语言:javascript
复制
for k, v in d.items():
    v.to_excel(f'{k}.xlsx', index=False)
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52182051

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档