1
Pandas Seriesコンストラクタは、キーがdatetimeの要素の1つを含むタプルである辞書を渡すと、NaN値を生成します。コードは以下の通りです。Pandas SeriesコンストラクタでNaN値が生成される
奇妙なことに、キーが単一の日時であるか、日時のないタプルであっても、それは起こっていません。
この動作はpandas 0.15.0で導入されたようですが、0.14.1で問題なく動作しますが、リリースノートには何も見つかりません。
私はWindows上で64ビットPython 2.7を実行しています。
何か助けていただければ幸いです。
import datetime
import pandas as pd
d = {
(datetime.date(2016, 5, 1), 'k1'): 1,
(datetime.date(2016, 5, 2), 'k2'): 2
}
print 'Dictionary:'
print d
print
s = pd.Series(d)
print 'Series:'
print s
print
df = pd.DataFrame(d.values(), index=pd.MultiIndex.from_tuples(d.keys()))
print 'DataFrame:'
print df
print
出力:
Dictionary:
{(datetime.date(2016, 5, 1), 'k1'): 1, (datetime.date(2016, 5, 2), 'k2'): 2}
Series:
2016-05-01 k1 NaN
2016-05-02 k2 NaN
dtype: float64
DataFrame:
0
2016-05-01 k1 1
2016-05-02 k2 2
これは奇妙です。 'datetime.date'を使うときと同じ振る舞いをしますが、代わりに' datetime.datetime'を使うと書いたように動作します。 'NaN'出力のインデックスを見ると、pandasは各日付に時間成分を追加しています。おそらく、その変換を行うバグがありますか? – root
iircこれは0.18.0に固定されています(0.17.1も同じです)。 – Jeff
@ジェフ私は0.18.1を使用していますが、同じ動作を見ています。 – root