![](/img/trans.png)
[英]Slice Dataframe in sub-dataframes when specific string in column is found
[英]How to break a pandas dataframe into sub dataframes when a certain value is found in the dataframe column?
我有 dataframe 看起來像這樣:
data = pd.DataFrame({"event": ["A", "B", "C", "A", "A", "E", "P", "S", "A", "Y", "A"]})
data.head(15)
event
0 A
1 B
2 C
3 A
4 A
5 E
6 P
7 S
8 A
9 Y
10 A
每當發現事件“A”時,我想將這個 dataframe 分成 5 個小數據幀。 所以我想創建的五個數據框在這種情況下看起來像這樣:
1) event
0 A
1 B
2 C
2) event
0 A
3) event
0 A
1 E
2 P
3 S
4) event
0 A
1 Y
5) event
0 A
有什么優雅的方法可以用 Python Pandas 和 Pyspark 做到這一點嗎?
對於 pandas,使用data['event'].eq('A').cumsum()
將groupby
與輔助石斑魚一起使用:
dfs = [g for _,g in data.groupby(data['event'].eq('A').cumsum())]
或者要獲取新索引,請添加reset_index
:
dfs = [g.reset_index(drop=True)
for _,g in data.groupby(data['event'].eq('A').cumsum())]
output(沒有reset_index
):
[ event
0 A
1 B
2 C,
event
3 A,
event
4 A
5 E
6 P
7 S,
event
8 A
9 Y,
event
10 A]
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.