Mat*_*etz 6 python dataframe pandas
我想要一个唯一的索引值,而不是多次重复相同的索引值。
示例:我有这个数据框:
test = pd.DataFrame({'id': ['a','a','a','a','b'],
'col_1': [1,2,3,4,5],
'col_2': [6,7,8,9,10]
})
id col_1 col_2
0 a 1 6
1 a 2 7
2 a 3 8
3 a 4 9
4 b 5 10
Run Code Online (Sandbox Code Playgroud)
而我想要实现的是将id列作为索引,而不是重复。我试过这个,但正如你所看到的,索引在每一行中重复:
test.set_index('id')
col_1 col_2
id
a 1 6
a 2 7
a 3 8
a 4 9
b 5 10
Run Code Online (Sandbox Code Playgroud)
我想要实现的是(所有 4 个值组的索引“a”等):
col_1 col_2
id
a 1 6
2 7
3 8
4 9
b 5 10
Run Code Online (Sandbox Code Playgroud)
任何想法如何做到这一点?提前致谢。
您可以将该id列设置为索引。为避免重复索引条目,还将索引设置为结果 MultiIndex 的第二级。
test.set_index(['id', test.index])
# Out:
col_1 col_2
id
a 0 1 6
1 2 7
2 3 8
3 4 9
b 4 5 10
Run Code Online (Sandbox Code Playgroud)
如果您真的不想拥有非重复索引级别,只需将其设置id为索引即可。但请注意,在这种情况下,pandas 的显示格式将包括重复项:
test.set_index('id')
# Out:
col_1 col_2
id
a 1 6
a 2 7
a 3 8
a 4 9
b 5 10
Run Code Online (Sandbox Code Playgroud)
也test.set_index('id').index.duplicated().any()将 yield True,对于包含重复项的索引具有典型的非最佳结果。
| 归档时间: |
|
| 查看次数: |
485 次 |
| 最近记录: |