python-3.x - 在 pandas 数据框中创建子索引

标签 python-3.x pandas numpy

好吧,这很棘手。我有一个 pandas 数据框,正在处理机器日志数据。我在数据中有一个索引,但是这个数据帧中有各种作业。我希望能够为这些单独的工作提供自己的索引,以便我可以将它们相互比较。所以我想要另一列的索引从零开始,直到作业结束,然后为新作业重置为零。或者我要逐行执行此操作吗?

最佳答案

我认为您需要 set_indexcumcount 来计数类别:

df = df.set_index(df.groupby('Job Columns').cumcount(), append=True)

示例:

np.random.seed(456)
df = pd.DataFrame({'Jobs':np.random.choice(['a','b','c'], size=10)})

#solution with sorting
df1 = df.sort_values('Jobs').reset_index(drop=True)
df1 = df1.set_index(df1.groupby('Jobs').cumcount(), append=True)
print (df1)
    Jobs
0 0    a
1 1    a
2 2    a
3 0    b
4 1    b
5 2    b
6 3    b
7 0    c
8 1    c
9 2    c

#solution with no sorting
df2 = df.set_index(df.groupby('Jobs').cumcount(), append=True)
print (df2)
    Jobs
0 0    b
1 1    b
2 0    c
3 0    a
4 1    c
5 2    c
6 1    a
7 2    b
8 2    a
9 3    b

关于python-3.x - 在 pandas 数据框中创建子索引,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46110500/

相关文章:

python - 想要使用 python swiftclient 将 sqlite.db 文件上传到 swift 容器并且总是得到 utf-8 错误

python - 是否可以通过 SSH 使用 os.walk?

python - 如何在循环中绘制来自多个文件的数据

python - Pandas applymap 方法,传递列名作为参数

python - 使用 Numpy 加载文本时出现内存错误

Python、Numpy、多维数组相加的方法(广播)

python-3.x - 使用 python 定义类构造函数

excel - 如何使用 Pandas 按两列进行分组?

python - 用 pandas 将字符串拆分为数字和文本

python - 将连续的行附加到 Python 数据框