gpt4 book ai didi

python - 如何根据条件编辑包含序列的数据框列?

转载 作者:行者123 更新时间:2023-12-04 07:47:59 25 4
gpt4 key购买 nike

我有一个数据帧,其中包含一个包含编码值的序列和记录它的日期(例如 (A,1))。我的目标是检查编码值 X 和 Y。如果它们发生在同一天,则从序列中删除 Y 值。

ID     Sequence
1 [(A,1), (B,1), (X,2), (Y,2), (Y,3)]
2 [(C,1), (X,2), (Y,2), (Z,2)]
3 [(C,1), (D,2), (X,3), (Y,3),(Z,3)]
我期待的结果是:
ID     Sequence
1 [(A,1), (B,1), (X,2), (Y,3)]
2 [(C,1), (X,2), (Z,2)]
3 [(C,1), (D,2), (X,3), (Z,3)]
有什么办法可以编写一个函数来获得这些结果?任何帮助,将不胜感激。

最佳答案

如果第一个值在 X 或 Y 中,您可以在元组中的第 1 个索引(第 2 项)上检查集合成员资格(这对于此类用例来说非常快),如果第二项已经存在,则不会附加列表,然后将此函数与 df.apply 一起使用

def fun(l):
s = set()
lst = []
for i in l:
if i[0] in ('X','Y'):
if i[1] not in s:
s.add(i[1])
lst.append(i)
else:
lst.append(i)
return lst
df['Sequence'].apply(fun) # df['Sequence']=df['Sequence'].apply(fun) assign back

0 [(A, 1), (B, 1), (X, 2), (Y, 3)]
1 [(C, 1), (X, 2), (Z, 2)]
2 [(C, 1), (D, 2), (X, 3), (Z, 3)]
Name: Sequence, dtype: object

关于python - 如何根据条件编辑包含序列的数据框列?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67118083/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com