2
我有一個pandasDataFrame
包含一個datetime.date
列。當我設置多級索引時,日期列被轉換爲datetime.datetime
對象,這在設置單級索引時不會發生。這是正常的行爲嗎?如何定義保持date
類型的多級索引?在熊貓數據框中設置多級索引更改日期時間
import datetime
import pandas as pd
values = [("a", datetime.date(2015,1,1), 30.),
("a", datetime.date(2015,1,2), 25.)]
columns = ["id", "date", "amount"]
df = pd.DataFrame(values, columns=columns)
df_single = df.set_index("date")
df_multi = df.set_index(["id", "date"])
這裏是輸出:
print(df_multi.index)
# MultiIndex(levels=[['a'], [2015-01-01 00:00:00, 2015-01-02 00:00:00]],
# labels=[[0, 0], [0, 1]],
# names=['id', 'date'])
print(df_single.index)
# Index([2015-01-01, 2015-01-02], dtype='object', name='date')
有關信息,我使用的是以下版本:
- 的Python 3.4.5 |蟒蛇2.3.0
- 熊貓= = 0.19.2
謝謝!這個解決方法爲我做了訣竅。但是,在我看來,這仍然是一個意想不到的副作用。我會開一個問題。 – ldocao
這是我發佈的問題:https://github.com/pandas-dev/pandas/issues/15636 – ldocao