考虑从特定记录到 python 中特定记录的数据帧记录
Consider dataframe records from particular records to particular records in python
通过考虑现有的 datafarame 记录,我想从特定的 hp 源记录中获取记录到特定的 hp 源记录之前,如下面提到的输出结果。
这里是例子 df:
seq_id file_name source date
b21345350 a.txt ad 2022-04-15
b32145660 e.txt qe 2022-04-15
c43526890 ace.txt hp 2022-04-15
re2345566 wer.csv hp 2022-04-15
b43251044 op.xlsx fa 2022-04-15
b6512400 ip.csv jm 2022-04-15
b9123420 tb.xlsx tp 2022-04-15
b3214563 cv.txt ux 2022-04-14
b45678900 em.txt hp 2022-04-14
b65357023 rt.csv hp 2022-04-14
b90879081 ty.txt mp 2022-04-14
b19019019 sd.txt jp 2022-04-14
但我想创建从 hp 源到 hp 源记录之前的结果数据帧,如下所示输出结果:
seq_id file_name source date
c43526890 ace.txt hp 2022-04-15
re2345566 wer.csv hp 2022-04-15
b43251044 op.xlsx fa 2022-04-15
b6512400 ip.csv jm 2022-04-15
b9123420 tb.xlsx tp 2022-04-15
b3214563 cv.txt ux 2022-04-14
谁能帮我得到上面的结果数据框。
试试这个:
s = df['source'].eq('hp')
g = (s.ne(s.shift()) & s).cumsum()
d = {i:j for i,j in df.loc[g.ne(0)].groupby(g)}
创建字典后,您可以使用以下代码拉取第一组:
d.get(1)
输出:
seq_id file_name source date
2 c43526890 ace.txt hp 2022-04-15
3 re2345566 wer.csv hp 2022-04-15
4 b43251044 op.xlsx fa 2022-04-15
5 b6512400 ip.csv jm 2022-04-15
6 b9123420 tb.xlsx tp 2022-04-15
7 b3214563 cv.txt ux 2022-04-14
通过考虑现有的 datafarame 记录,我想从特定的 hp 源记录中获取记录到特定的 hp 源记录之前,如下面提到的输出结果。
这里是例子 df:
seq_id file_name source date
b21345350 a.txt ad 2022-04-15
b32145660 e.txt qe 2022-04-15
c43526890 ace.txt hp 2022-04-15
re2345566 wer.csv hp 2022-04-15
b43251044 op.xlsx fa 2022-04-15
b6512400 ip.csv jm 2022-04-15
b9123420 tb.xlsx tp 2022-04-15
b3214563 cv.txt ux 2022-04-14
b45678900 em.txt hp 2022-04-14
b65357023 rt.csv hp 2022-04-14
b90879081 ty.txt mp 2022-04-14
b19019019 sd.txt jp 2022-04-14
但我想创建从 hp 源到 hp 源记录之前的结果数据帧,如下所示输出结果:
seq_id file_name source date
c43526890 ace.txt hp 2022-04-15
re2345566 wer.csv hp 2022-04-15
b43251044 op.xlsx fa 2022-04-15
b6512400 ip.csv jm 2022-04-15
b9123420 tb.xlsx tp 2022-04-15
b3214563 cv.txt ux 2022-04-14
谁能帮我得到上面的结果数据框。
试试这个:
s = df['source'].eq('hp')
g = (s.ne(s.shift()) & s).cumsum()
d = {i:j for i,j in df.loc[g.ne(0)].groupby(g)}
创建字典后,您可以使用以下代码拉取第一组:
d.get(1)
输出:
seq_id file_name source date
2 c43526890 ace.txt hp 2022-04-15
3 re2345566 wer.csv hp 2022-04-15
4 b43251044 op.xlsx fa 2022-04-15
5 b6512400 ip.csv jm 2022-04-15
6 b9123420 tb.xlsx tp 2022-04-15
7 b3214563 cv.txt ux 2022-04-14