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