我有一个看似简单的问题,但我无法在此平台上找到答案。我在不同的日子使用多种设备进行了GPS跟踪实验。
我现在有两个数据框。第一个数据帧包含具有gpsnumber,时间戳,经度和纬度的gps点。第二个数据框包含有关实验的信息,我们在分发时和在gpstrackers中写下了自己。有实验编号,使用的gps编号,hand_out_time和hand_in_time列。
我有两个目标: (1)我想将gps数据与正确的实验匹配, (2)我要删除不在实验时间内的所有行。
这看起来像:
df:
GPS_number date_time lon lat
744 16 2019-12-12 10:58:41 4.913158 52.367210
745 16 2019-12-12 11:10:05 4.913158 52.367210
746 16 2019-12-12 11:10:56 4.913085 52.367130
747 16 2019-12-12 11:29:31 4.913085 52.367130
748 16 2019-12-12 11:29:36 4.913191 52.367092
df2:
Measurement GPS_number Visitor_type Hand_out_time Hand_in_time
0 1 3 Tourist 2019-12-12 11:35:00 2019-12-12 12:16:00
1 2 3 Tourist 2019-12-12 12:47:00 2019-12-12 14:34:00
2 3 5 Member 2019-12-12 11:10:00 2019-12-12 13:36:00
3 4 6 Member 2019-12-12 11:27:00 2019-12-12 12:55:00
4 5 6 Tourist 2019-12-12 12:54:00 2019-12-12 15:22:00
我尝试使用蒙版,但是这不起作用,因为我猜它不能正确匹配分发时间和分发时间。
mask = (df['GPS_number'] = (df2['GPS_number'] & (df['date_time'] > df2['Hand_out_time'] & (df['date_time'] < df2['Hand_in_time)
df = df[mask]
如果有人可以告诉我该怎么做,那会很棒。谢谢。
答案 0 :(得分:0)
遵循这些思路可能行得通,更多的想法是希望为df提供功能全面的代码。
[TestFixture]
public class AvatarController_Should
{
[Test]
public async Task IndexReturnsDefaultImage()
{
var hostingEnvironmentMock = new Mock<IWebHostEnvironment>();
var dabataseName = nameof(IndexReturnsDefaultImage);
var options = AvatarTestUtil.GetOptions(dabataseName);
var userManagerWrapperMock = new Mock<IUserManagerWrapper>();
using (var actAndAssertContext = new ApplicationDbContext(options))
{
var sut = new AvatarController(userManagerWrapperMock.Object, hostingEnvironmentMock.Object, actAndAssertContext);
}
}
}
public class AvatarTestUtil
{
public static DbContextOptions<ApplicationDbContext> GetOptions(string databaseName)
{
var serviceCollection = new ServiceCollection()
.AddEntityFrameworkInMemoryDatabase()
.BuildServiceProvider();
return new DbContextOptionsBuilder<ApplicationDbContext>()
.UseInMemoryDatabase(databaseName)
.UseInternalServiceProvider(serviceCollection)
.Options;
}
}
}
我不认为遮罩会像您最初那样在多个df中起作用。在我看来,您想要做的事情看起来像是SQL的Python左连接,带有多个on条件。这里的想法是与一个简单的匹配项合并,这将使具有多个重复项的数据集变得非常笨拙。将蒙版应用到该重新定义的df上将类似于添加额外的条件,并有望为您提供所需的内容。
另一个潜在的错误可能是,如果列之间的dtypes不一致。
如果以上操作均无效,请用错误消息或不正确的结果进行注释,然后尝试进行相应的编辑。