背景
我的项目正在将熊猫从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
关于python - get_dummies()之后的Pandas 0.21 reindex(),我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/47912449/