关于为Pandas DataFrames编制索引似乎还有很多其他问题,但是我还没有找到一种实现所需类型更改的方法。如果我有一个看起来像的DF
Value
Index1 Index2
0 1 1.1
1 2 1.2
2 3 2.4
3 1 1.3
4 2 2.2
5 3 3.1
我不需要index1的所有内容都是唯一的。我宁愿有类似
Value
Index1 Index2
0 1 1.1
0 2 1.2
0 3 2.4
1 1 1.3
1 2 2.2
1 3 3.1
有没有办法做到这一点?我认为最简单的方法是应用将index1值除以3的函数,但不确定如何将函数应用于索引。也许熊猫虽然拥有自己的方法来重新定义索引值以具有这样的分组,但是当您同时考虑这两个索引时,它们仍然是唯一的?
最佳答案
import io
import pandas as pd
text = '''\
Index1 Index2 Value
0 1 1.1
1 2 1.2
2 3 2.4
3 1 1.3
4 2 2.2
5 3 3.1'''
df = pd.read_table(io.BytesIO(text), sep='\s+', index_col=[0, 1])
df.index = pd.MultiIndex.from_tuples(
[(item[0] // 3, item[1]) for item in df.index],
names=df.index.names)
print(df)
产量
Value
Index1 Index2
0 1 1.1
2 1.2
3 2.4
1 1 1.3
2 2.2
3 3.1