我的目标是基于子字符串导入在sheet1中存储为DataFrame df1的数据。
我的DataFrame如下所示:
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
但是我想要的结果应该是
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”
=IF(Sheet1!A2=$B$1,Sheet1!A2,"")
,并且可以复制到所有单元格。
我不知道如何在python中执行此操作。 任何解决方案将不胜感激。
答案 0 :(得分:1)
首先将数据读入Pandas数据框:
df = pd.read_excel('file.xlsx')
然后对pd.Series.str.contains
使用字典理解:
substrings = ['1C', '1F']
d = {x: df[df['ordercode'].str.contains(x, na=False, regex=False)] for x in substrings]
然后您可以通过子字符串键访问数据帧,例如d['1C']
。如果需要,可以将字典中的每个值导出到单独的工作表或工作簿中。例如:
for k, v in d.items():
v.to_excel(f'{k}.xlsx', index=False)