提问人:floupinette 提问时间:12/31/2022 更新时间:12/31/2022 访问量:86
根据常见的连续序列拆分数据帧
Split dataframe according to common consecutive sequences
问:
让我们考虑一下这个 DataFrame:
import pandas as pd
df = pd.DataFrame({"type" : ["dog", "cat", "whale", "cat", "cat", "lion", "dog"],
"status" : [False, True, True, False, False, True, True],
"age" : [4, 6, 7, 7, 1, 7, 5]})
它看起来像这样:
type status age
0 dog False 4
1 cat True 6
2 whale True 7
3 cat False 7
4 cat False 1
5 lion True 7
6 dog True 5
我想根据列状态中的连续相同值拆分此数据帧。 结果存储在列表中。
这里我手动写下预期的结果:
result = [df.loc[[0],:], df.loc[1:2,:], df.loc[3:4,:], df.loc[5:6,:]]
所以 result[0] 是这个数据帧:
type status age
0 dog False 4
result[1] 是这个 DataFrame:
type status age
1 cat True 6
2 whale True 7
result[2] 是这个 DataFrame:
type status age
3 cat False 7
4 cat False 1
result[3] 是 DataFrame:
type status age
5 lion True 7
6 dog True 5
最有效的方法是什么?
答:
2赞
BENY
12/31/2022
#1
让我们一起做
s = df.status.ne(df.status.shift())
result = [ y for _ , y in df.groupby(s.cumsum())]
#result[0]
#Out[69]:
# type status age
#0 dog False 4
上一个:更改天数顺序
评论