首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >设置类型无序--蟒-熊猫的错误

设置类型无序--蟒-熊猫的错误
EN

Stack Overflow用户
提问于 2021-12-07 00:49:40
回答 1查看 2.4K关注 0票数 -1

我知道我必须走这一步,但我不知道该怎么做:

通过使用NASA空间科学数据协调档案馆,我们收集了每个任务中使用的每个模块的信息。与您在创建示例表时一样,创建了6个新列,3个用于月球模块,3个用于命令模块:

  • 模块名称
  • 模块质量
  • 模块质量差异

用0填写任何NaN值:

代码语言:javascript
复制
---------------------------------------------------------------------------
TypeError                                 Traceback (most recent call last)
~\AppData\Local\Temp/ipykernel_8184/2992438938.py in <module>
----> 1 missions['Lunar module (LM)'] = {'Eagle (LM-5)', 'Intrepid (LM-6)', 'Antares (LM-8)', 'Falcon (LM-10)', 'Orion (LM-11)', 'Challenger (LM-12)'}
      2 missions['LM mass (kg)'] = {15103, 15235, 15264, 16430, 16445, 16456}
      3 missions['LM mass diff'] = missions['LM mass (kg)'].diff()
      4 missions['LM mass diff'] = missions['LM mass diff'].fillna(value=0)
      5 

C:\ProgramData\Miniconda3\lib\site-packages\pandas\core\frame.py in __setitem__(self, key, value)
   3610         else:
   3611             # set column
-> 3612             self._set_item(key, value)
   3613 
   3614     def _setitem_slice(self, key: slice, value):

C:\ProgramData\Miniconda3\lib\site-packages\pandas\core\frame.py in _set_item(self, key, value)
   3782         ensure homogeneity.
   3783         """
-> 3784         value = self._sanitize_column(value)
   3785 
   3786         if (

C:\ProgramData\Miniconda3\lib\site-packages\pandas\core\frame.py in _sanitize_column(self, value)
   4508         if is_list_like(value):
   4509             com.require_length_match(value, self.index)
-> 4510         return sanitize_array(value, self.index, copy=True, allow_2d=True)
   4511 
   4512     @property

C:\ProgramData\Miniconda3\lib\site-packages\pandas\core\construction.py in sanitize_array(data, index, dtype, copy, raise_cast_failure, allow_2d)
    557         if isinstance(data, (set, frozenset)):
    558             # Raise only for unordered sets, e.g., not for dict_keys
--> 559             raise TypeError(f"'{type(data).__name__}' type is unordered")
    560 
    561         # materialize e.g. generators, convert e.g. tuples, abc.ValueView

TypeError: 'set' type is unordered

所用代码:

代码语言:javascript
复制
missions['Lunar module (LM)'] = ['Eagle (LM-5)', 'Intrepid (LM-6)', 'Antares (LM-8)', 'Falcon (LM-10)', 'Orion (LM-11)', 'Challenger (LM-12)']
missions['LM mass (kg)'] = {15103, 15235, 15264, 16430, 16445, 16456}
missions['LM mass diff'] = missions['LM mass (kg)'].diff()
missions['LM mass diff'] = missions['LM mass diff'].fillna(value=0)

missions['Command module (CM)'] = ['Columbia (CSM-107)', 'Yankee Clipper (CM-108)', 'Kitty Hawk (CM-110)', 'Endeavor (CM-112)', 'Casper (CM-113)', 'America (CM-114)']
missions['CM mass (kg)'] = {5560, 5609, 5758, 5875, 5840, 5960}
missions['CM mass diff'] = missions['CM mass (kg)'].diff()
missions['CM mass diff'] = missions['CM mass diff'].fillna(value=0)

missions

儿科用户:

代码语言:javascript
复制
---------------------------------------------------------------------------
TypeError                                 Traceback (most recent call last)
~\AppData\Local\Temp/ipykernel_8184/3771249595.py in <module>
      1 missions['Lunar module (LM)'] = ['Eagle (LM-5)', 'Intrepid (LM-6)', 'Antares (LM-8)', 'Falcon (LM-10)', 'Orion (LM-11)', 'Challenger (LM-12)']
----> 2 missions['LM mass (kg)'] = {15103, 15235, 15264, 16430, 16445, 16456}
      3 missions['LM mass diff'] = missions['LM mass (kg)'].diff()
      4 missions['LM mass diff'] = missions['LM mass diff'].fillna(value=0)
      5 

C:\ProgramData\Miniconda3\lib\site-packages\pandas\core\frame.py in __setitem__(self, key, value)
   3610         else:
   3611             # set column
-> 3612             self._set_item(key, value)
   3613 
   3614     def _setitem_slice(self, key: slice, value):

C:\ProgramData\Miniconda3\lib\site-packages\pandas\core\frame.py in _set_item(self, key, value)
   3782         ensure homogeneity.
   3783         """
-> 3784         value = self._sanitize_column(value)
   3785 
   3786         if (

C:\ProgramData\Miniconda3\lib\site-packages\pandas\core\frame.py in _sanitize_column(self, value)
   4508         if is_list_like(value):
   4509             com.require_length_match(value, self.index)
-> 4510         return sanitize_array(value, self.index, copy=True, allow_2d=True)
   4511 
   4512     @property

C:\ProgramData\Miniconda3\lib\site-packages\pandas\core\construction.py in sanitize_array(data, index, dtype, copy, raise_cast_failure, allow_2d)
    557         if isinstance(data, (set, frozenset)):
    558             # Raise only for unordered sets, e.g., not for dict_keys
--> 559             raise TypeError(f"'{type(data).__name__}' type is unordered")
    560 
    561         # materialize e.g. generators, convert e.g. tuples, abc.ValueView

TypeError: 'set' type is unordered
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-12-07 00:57:29

missions['Lunar module (LM)'] = ...行更改为:

代码语言:javascript
复制
missions['Lunar module (LM)'] = ['Eagle (LM-5)', 'Intrepid (LM-6)', 'Antares (LM-8)', 'Falcon (LM-10)', 'Orion (LM-11)', 'Challenger (LM-12)']

{...}创建一个按错误消息指示的排序(排序)的set。另一方面,[...]创建了一个没有排序的list,这正是Pandas所期望的。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/70253689

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档