pandas создать файл только если есть данные по отбору
Имеется код, который отбирает из одного датафрейма нужные данные по условию и записывает его в файл excel. Можно ли сделать так, чтобы файл создавался только если по заданному условием отбору есть данные, а если их нет, то файл не создавать?
import pandas as pd
df = pd.DataFrame([[124,448,'Shop1'],[56,7,'Shop2']],
index=['row 1','row 2'],
columns=['col 1','col 2','Shop'])
df
for i in df['Shop']:
df1=df.loc[(df['col 1']>100)&(df['Shop']==i)]
df1.to_excel('Загрузка'+i+'.xlsx', index=False)
Ответы (1 шт):
Автор решения: strawdog
→ Ссылка
Вы можете воспользоваться методом empty
:
if not df1.empty:
df1.to_excel('Загрузка'+i+'.xlsx', index=False)
Но вообще, у вас довольно странно прописано условие. не проще ли было бы сделать как-то так:
df[df["col 1"].gt(100)].apply(lambda x:x.to_excel(
'Загрузка'+x["Shop"]+'.xlsx', index=False), axis=1)
?