[英]Python for loop over two lists for all the pairs
我有一个日期为ID的数据框-我需要提取每个日期和ID组合并创建一个新的数据框。
date id
2016-05-13 abc
2016-05-13 pqr
2016-05-14 abc
2016-05-14 pqr
ids = list(sorted(set(df['id'])))
Out: ['abc','pqr']
dates = list(sorted(set(df[df.id == ids[i]]['date'])))
Out: ['2016-05-13','2016-05-14']
for i in range(0,len(ids)):
df2 = df[(df.date == dates[i]) & (df.id == id[i])]
上面的代码仅产生相对索引值(第一个日期,第一个ID和第二个日期,第二个ID)的输出( df2
),但我需要所有对的输出。 请让我知道循环中要更改的内容吗?
要获取所有对ids
和dates
,可以使用itertools
作为
import itertools
for iid, ddate in itertools.product(ids, dates):
df2 = df[(df.date == ddate) & (df.id == iid)]
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.