У меня есть датафрейм Pandas, похожий на этот
|Ind| C1 | C2 |....| Cn |
|-----------------------|
| 1 |val1| AE |....|time|
|-----------------------|
| 2 |val2| FB |....|time|
|-----------------------|
|...|....| .. |....| ...|
|-----------------------|
| n |valn| QK |....|time|
и я должен сгруппировать его по столбцу C2
выполнить некоторую фильтрацию для каждой группы и сохранить результаты в отдельном файле для каждой группы.
Grouped Dataframe:
Subset 1:
|Ind| C1 | C2 |....| Cn |
|-----------------------|
| 1 |val1| AE |....|time|
|-----------------------|
| 2 |val2| AE |....|time|
|-----------------------|
|...|....| .. |....| ...|
|-----------------------|
| n |valn| AE |....|time|
Subset 2
|Ind| C1 | C2 |....| Cn |
|-----------------------|
| 1 |val1| FB |....|time|
|-----------------------|
| 2 |val2| FB |....|time|
|-----------------------|
|...|....| .. |....| ...|
|-----------------------|
| n |valn| FB |....|time|
and so on.
Мой текущий подход выглядит примерно так
def my_filter_function(self, df):
result = df[df["C1"].notna() & df["Cn"] != 'Some value']
pd.to_csv(...)
df = pd.read_csv(...)
df.groupby("C2").apply(lambda x: self.my_filter_function(x))
Теперь моя проблема в том, что Pandas дважды вызывает метод apply для первой группы, как упоминалось здесь , здесь и в документах . Таким образом, файл для первой группы будет храниться дважды. Есть ли способ избежать этого или у вас есть предложения по другому подходу? Можно ли сохранить группировку после применения метода?
Привет