cro*_*bot 3 python python-3.x pandas
我有一个Pandas DataFrame值(浮点数)和国家名称字符串("UNITED STATES","UNITED KINGDOM"等).我想根据国家总结价值观:
Data['Values'].groupby(Data['Country']).sum()
Run Code Online (Sandbox Code Playgroud)
不幸的是,我收到以下错误:
TypeError: 'Series' objects are mutable, thus they cannot be hashed
Run Code Online (Sandbox Code Playgroud)
此外,如果我尝试将由国家/地区组成的系列独一无二:
Data['Country'].unique()
Run Code Online (Sandbox Code Playgroud)
我犯了同样的错误:
TypeError: 'Series' objects are mutable, thus they cannot be hashed
Run Code Online (Sandbox Code Playgroud)
为什么会出现此错误?这是国名吗?任何帮助将不胜感激.我使用的是Python 3.4和Pandas 0.15.2.
有时像列表(或本例中的系列)这样的可变类型可以潜入您的不可变对象集合中.
您可以使用apply强制所有对象不可变.尝试
Data.Country = Data.Country.apply(str)
Data.groupby('Country').Values.sum()
Run Code Online (Sandbox Code Playgroud)
请注意,这可能导致字符串不符合您的预期; 例如str(['Canada'])- > "['Canada']"所以str(['Canada']) == 'Canada'会产生False.我建议做Data.Country.unique()并且至少进行视觉检查以确保一切看起来都应该如此.
| 归档时间: |
|
| 查看次数: |
6398 次 |
| 最近记录: |