Использование stack
df.set_index('ID').rename_axis('Attribute',1).stack().loc[lambda x : x=='T'].reset_index().drop(0,1)
Out[268]:
ID Attribute
0 1 Male
1 1 Teeanger
2 2 Special_Need
Use a view to aggregate the results from the multiple tables and then use LINQ over the view
Чтобы имитировать предоставленный вами SQL-запрос, вы должны сделать следующее:
var schedule = (from t1 in contacts
join t2 in contactgroupmapping on t1.ID equals t2.GroupID
join t3 in campaigngroupsmapping on t3.ContactGroupID = t2.GroupID
where t3.CampaignID = highestPriority.CampaignID
select new PieceOfCampaignSchedule
{
Email = t1.EmailAddress
}).Skip(500).Take(2500).ToList()
Пытаетесь ли вы пролистывать кампании, получателей или обоих?
Я думаю, что ваша попытка действительно близка; Может быть, я что-то упускаю, но я думаю, что вам просто нужно закрыть свой SelectMany () перед Skip / Take:
Recipients = c.CampaignGroupsMappings.SelectMany(d => d.ContactGroup.ContactGroupMappings.Select(e => new ContactData() { /*Contact Data*/ })).Skip(c.TotalSent).Take(totalRequired).ToList()
Примечание: добавлено ")" после "/ * Контактные данные * /})" и удалено ")" после ".Take (totalRequired)"