簡體   English   中英

get_dummies()之后的Pandas 0.21 reindex()

[英]Pandas 0.21 reindex() after get_dummies()

背景

我的項目正在將Pandas從0.19.2升級到0.21.0。 在項目中,我有一個帶有一個分類列的DataFrame。 然后,我使用get_dummies()對其進行編碼,然后使用reindex()來過濾列。 但是,如果reindex()中的arg列包含未編碼的列,則reindex()會失敗。

樣例代碼

以下代碼適用於0.19.2,但在0.21.0下失敗。

df = pd.DataFrame.from_items([('GDP', [1, 2]),('Nation', ['AB', 'CD'])])
df = pd.get_dummies(df, columns=['Nation'], sparse=True)  # SparseDataFrame
df.reindex(columns=['GDP'])  # Fails :/

錯誤消息是

df.reindex(columns=['GDP'])
....
TypeError: values must be SparseArray

我希望實現的目標

使用reindex(columns = ...)篩選包含已編碼和未編碼列的所選列。 謝謝!

更新(2018-01-17)

GitHub上創建了一個問題。

當然,這似乎是一個錯誤。 從v0.21開始,他們重新設計了許多reindex API,因此似乎某些地方可能出現了問題。

我沒有答案,但是我有解決方法,希望它可以解決:您需要先轉置, 然后重新索引。

df.T.reindex(index=['GDP']).T

   GDP
0    1
1    2

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM