在 Pandas 中修改 MultiIndex 数据框中的重复子索引
Modifying duplicate subindex in MultiIndex dataframe in Pandas
嗨,我有一个数据帧切片如下:
| | | Lemon | Orange |
|------------|----------|-------|--------|
| Date | Location | | |
| 01/01/2016 | Park | 10 | 20 |
| 01/01/2016 | Beach | 5 | 15 |
| 01/01/2016 | Park | 2 | 4 |
| 02/01/2016 | Park | 8 | 3 |
如您所见,(01/01/2016, Park)
有一个重复项,原因是第 3 个条目在公园的 k 之后有一个白色 space。我在使用有限的索引选择技巧时遇到困难,无法在整个 Location 列上执行 rstrip(" ")
以避免白色 space 错误。
最终,我希望做一个 groupby
函数来可视化 Park
和其他位置之间的数据。目前,"Park"
和 "Park "
是两个不同的位置。
有什么建议吗?
索引是不可变的,因此如果您想更改 index
标签,您需要设置一个新的 index
(感谢 )。
您可以使用 str.strip
in second level selecting by get_level_values
:
new_index = list(zip(df.index.get_level_values('Date'),
df.index.get_level_values('Location').str.strip()))
df.index = pd.MultiIndex.from_tuples(new_index, names = df.index.names)
print (df.index)
MultiIndex(levels=[[2016-01-01 00:00:00, 2016-02-01 00:00:00], ['Beach', 'Park']],
labels=[[0, 0, 0, 1], [1, 0, 1, 1]],
names=['Date', 'Location'])
如果要使用 rstrip
,请将 str.strip
替换为 str.rstrip
。
嗨,我有一个数据帧切片如下:
| | | Lemon | Orange |
|------------|----------|-------|--------|
| Date | Location | | |
| 01/01/2016 | Park | 10 | 20 |
| 01/01/2016 | Beach | 5 | 15 |
| 01/01/2016 | Park | 2 | 4 |
| 02/01/2016 | Park | 8 | 3 |
如您所见,(01/01/2016, Park)
有一个重复项,原因是第 3 个条目在公园的 k 之后有一个白色 space。我在使用有限的索引选择技巧时遇到困难,无法在整个 Location 列上执行 rstrip(" ")
以避免白色 space 错误。
最终,我希望做一个 groupby
函数来可视化 Park
和其他位置之间的数据。目前,"Park"
和 "Park "
是两个不同的位置。
有什么建议吗?
索引是不可变的,因此如果您想更改 index
标签,您需要设置一个新的 index
(感谢
您可以使用 str.strip
in second level selecting by get_level_values
:
new_index = list(zip(df.index.get_level_values('Date'),
df.index.get_level_values('Location').str.strip()))
df.index = pd.MultiIndex.from_tuples(new_index, names = df.index.names)
print (df.index)
MultiIndex(levels=[[2016-01-01 00:00:00, 2016-02-01 00:00:00], ['Beach', 'Park']],
labels=[[0, 0, 0, 1], [1, 0, 1, 1]],
names=['Date', 'Location'])
如果要使用 rstrip
,请将 str.strip
替换为 str.rstrip
。