Python 基于另一列从熊猫系列的列表中选择元素
我有一个如下形式的数据框:Python 基于另一列从熊猫系列的列表中选择元素,python,pandas,list,indexing,Python,Pandas,List,Indexing,我有一个如下形式的数据框: Name Dates Trigger John [d1,d2,d3] 1 Mike [d4] NaN Li [d1,d4,d5] 2 其中,列Dates中的行是Python列表,列表中的每个元素都是DateTime对象(例如“2019-08-15”) 我的最终目标是获得一个数组,该数组在Trigger中提到的索引位置的日期之间存在差异(以天为单位
Name Dates Trigger
John [d1,d2,d3] 1
Mike [d4] NaN
Li [d1,d4,d5] 2
其中,列Dates中的行是Python列表,列表中的每个元素都是DateTime对象(例如“2019-08-15”)
我的最终目标是获得一个数组,该数组在Trigger中提到的索引位置的日期之间存在差异(以天为单位),从而生成一个新列,如:
Date_diff
[d2-d1,d2-d2,d2-d3]
[NaN]/d4
[d5-d1,d5-d4,d5-d5]
无论我尝试了什么,我总是无法根据最后一列正确识别列表中的正确元素。有什么建议吗?据我所知,您希望将触发器作为元素列表中的索引,从中减去其他元素。我还是不知道你想对迈克对应的那一排说些什么
list1
list2
列表3
,它将成为日期差异列i
枚举list1
,用变量j
遍历其中的list2
,并将list2[i]-list2[j]
添加到list3
。相应地处理i=NaN
的情况list3
作为新列插入数据框,名称为Dates\u diff希望能有所帮助:)处理NaN后,以下解决方案有效:
df.apply(lambda row: row.Dates[row.Trigger], axis=1)