好的,这很棘手。我有一个pandas数据帧,我正在处理机器日志数据。我在数据中有一个索引,但是这个数据框中有各种各样的工作。我希望能够为这些个人工作提供他们自己的索引,以便我可以将它们相互比较。所以我想要一个索引从零开始的另一列,直到作业结束,然后为新作业重置为零。或者我一行一行地做这个?
答案 0 :(得分:2)
我认为您需要set_index
cumcount
来计算类别:
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
$table1 = <table style="width:100%">
<tr>
<th>Firstname</th>
<th>Lastname</th>
<th>Age</th>
</tr>
<tr>
<td>Jill</td>
<td>Smith</td>
<td>50</td>
</tr>
<tr>
<td>Eve</td>
<td>Jackson</td>
<td>94</td>
</tr>
</table>
;