Python Pandas 在应用后保持分组

我有一个与此类似的 Pandas Dataframe


|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 方法。所以第一组的文件将被存储两次。有什么办法可以避免这种情况,或者您对另一种方法有什么建议吗?是否可以在应用方法之后保留分组?

aluckdog
浏览 172回答 2
2回答
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python