我有如下所示的資料框:
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”時,我想將此資料幀分成 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 做到這一點?
uj5u.com熱心網友回復:
使用 pandas,groupby與輔助石斑魚一起使用data['event'].eq('A').cumsum():
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())]
輸出(不帶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]
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/450703.html
上一篇:我如何使用醫療代碼來確定使用jupyter的人患有什么疾病?
下一篇:洗掉除逗號以外的所有字符和數字
