1

次の問題があります。整数の列名と期間インデックスを使用して DataFrame を構築しました。ここで、次の関数を使用して列の名前を変更すると:

df.rename(columns = lambda x: str(x), inplace=True)

したがって、列の型を文字列に変換すると、次の奇妙な動作が見られます。操作の前に、フレームから 1 つの列を取得すると、シリーズが取得されます。今、いくつかの列で DataFrame を取得します: 以前df.loc[:,1]は Series を与えました:

これで、df.loc[:,'1']長さ 0 の PeriodIndex と df の完全な元の列を持つ DataFrame が得られます。

私が何か間違ったことをしているのか、それともバグに遭遇したのか、誰にも分かりますか?

バグ (?) を再現するコード スニペットを次に示します。

A = pd.DataFrame(dict(zip(range(0,9000), [pd.Series([1,2,3], [pd.Period(1), pd.Period(2), pd.Period(3)]) for x in range(0,9000)])))

A[5000]
A.rename(columns = lambda x: str(x), inplace=True)

A['5000'] # This should return a DataFrame with a zero-PeriodIndex and the full columns!

事前にどうもありがとうございました。

4

1 に答える 1