【发布时间】:2015-07-09 06:03:05
【问题描述】:
这个问题与我之前提出的关于使用 pandas get_dummies() 函数的问题有关(链接如下)。
Pandas Get_dummies for nested tables
但是,在使用答案中提供的解决方案的过程中,我在查看 groupby 函数时注意到了奇怪的行为。问题是当矩阵以稀疏格式表示时,数据帧的重复(非唯一)索引值似乎会导致错误,而对于密集矩阵则按预期工作。
我有非常高维的数据,因此出于内存原因需要稀疏矩阵。错误示例如下。如果有人可以解决它,将不胜感激
工作:
import pandas as pd
df = pd.DataFrame({'Instance':[1,1,2,3],'Cat_col':
['John','Smith','Jane','Doe']})
result= pd.get_dummies(df.Cat_col, prefix='Name')
result['Instance'] = df.Instance
result = result.set_index('Instance')
result = result.groupby(level=0).apply(max)
失败
import pandas as pd
df = pd.DataFrame({'Instance':[1,1,2,3],'Cat_col':
['John','Smith','Jane','Doe']})
result= pd.get_dummies(df.Cat_col, prefix='Name',sparse=True)
result['Instance'] = df.Instance
result = result.set_index('Instance')
result = result.groupby(level=0).apply(max)
请注意,您需要 16.1 或更高版本的 pandas。
提前谢谢你
【问题讨论】:
-
如果将最后一行更改为
result = result.groupby(level=0).apply(sum),则失败的示例有效