gpt4 book ai didi

python - 如何分割 Pandas 数据框

转载 作者:太空宇宙 更新时间:2023-11-03 11:16:26 25 4
gpt4 key购买 nike

我一直在谷歌上寻找解决这个问题的方法,但是它非常具体,所以我很难找到一个合适的策略来解决这个问题。假设我有一个这样的数据框:

name    trajectory_id    lat    long
0 1 - -
0 1 - -
. . . .
. . . .
. . . .
0 40 - -
0 40 - -

本质上,我有许多长度不同的轨迹。我想通过将每个轨迹划分为来分割这个数据框等长的片段。如果轨迹不能完全划分,那么最后一段可以更短。我考虑过使用循环来完成此操作按“trajectory_id”分组的数据框,添加另一列指示段号例如:

name    trajectory_id    lat    long    segment_id
0 1 - - 0
0 1 - - 0
. . . .
. . . .
. . . .
0 40 - - 150
0 40 - - 150

我觉得这是解决问题的错误方法,我正在寻找一个更棒的解决方案。谢谢!

最佳答案

这会创建随机长度的轨迹并附加一个段 ID,希望我理解正确。

import pandas as pd
import numpy as np

seg_length = 3

# Generate data
df = pd.DataFrame(np.sort(np.random.randint(low=1, high=10, size=(50,))), columns=['trajectory_id'])

# Create id for each segment grouped on trajectory_id
df['rk'] = np.ceil((df.groupby(['trajectory_id']).cumcount()+1)/seg_length)

# Final segment_id
f,i = pd.factorize(df[['trajectory_id','rk']].apply(tuple,1))
df['segment_id'] = f

关于python - 如何分割 Pandas 数据框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50873725/

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