我尝试仅在一个级别上重新索引具有两个或多个索引的数据帧,但.reindex()与level参数一起使用,正如我在此答案中看到的那样,除了预期的行为之外,似乎什么都不做。
这是我尝试使用的代码:
import pandas as pd
dtest = pd.DataFrame([['Martin', 'room_1', 3],
['Martin', 'room_2', 2],
['Georges', 'room_2', 4],
['Georges', 'room_1', 12]],
columns=['name', 'room', 'time_spent'])
dtest.set_index(['name', 'room',], inplace=True)
display(dtest)
print(dtest.reindex(
['room_1', 'room_2', 'room_3'], level=1, fill_value=0))
Run Code Online (Sandbox Code Playgroud)
哪个输出
time_spent
name room
Martin room_1 3
room_2 2
Georges room_1 12
room_2 4
Run Code Online (Sandbox Code Playgroud)
而我期待的输出是
time_spent
name room
Martin room_1 3
room_2 2
room_3 0
Georges room_1 12
room_2 4
room_3 0
Run Code Online (Sandbox Code Playgroud)
reindex() 字面上什么也没做。
我是否错过了使用的重要细节,reindex或者有什么东西坏了?
我正在使用 Python 3.6.7 (v3.6.7:6ec5cf24b7, …