假设csv中有下表
elementID | groupID | sequence
abc | A | 0
dcv | A | 1
asd | B | 1
ccc | B | 0
abc | B | 2
我在Pandas
中将此表作为数据帧导入
我需要从这个数据帧创建另一个数据帧,其中每个条目表示elementID
的两个连续元素
例如如下所示
elementID_1 | elementID_2 | groupID
abc | dcv | A
asd | abc | B
ccc | asd | B
起初,我想到了多行选择,但不知道如何做到这一点
所以我决定一步一步地创建一列。
我首先创建了elementID_2
列,如下所示
new_df = pd.DataFrame()
new_df[["elementID_2", "sequence", "groupID"]] = old_df.loc[old_df.loc.sequence>1][["elementID", "sequence", "groupID"]]
现在要创建elementID_1
列,我想匹配旧数据帧中具有as sequence
值的条目,新数据帧的sequence
值减去1,两个数据帧之间具有相同的groupdID
我该怎么做
IIUC,您可以通过
shift()
对组和dropna
执行此操作:输出:
然后可以删除
sequence
列并将elementID
重命名为elementID_2
这里有一种使用
groupby
+itertools
的方法相关问题 更多 >
编程相关推荐