python - 字典理解失败 - Python 3.6.x
问题描述
我正在尝试编写一个dict
理解,dict
为k,v
我column_title, # of null values in that column
的pandas df
.
我有以下内容:
df1_null_dict = {c:df1.c.isnull().sum() for c in df1}
以下是如何在 Python 中构建 dict 理解的示例。
但是,我得到:
---------------------------------------------------------------------------
AttributeError Traceback (most recent call last)
<ipython-input-5-a4c7d72985f6> in <module>
----> 1 df1_null_dict = {c:df1.c.isnull().sum() for c in df1}
2 df2_null_dict = {c:df2.c.isnull().sum() for c in df2}
<ipython-input-5-a4c7d72985f6> in <dictcomp>(.0)
----> 1 df1_null_dict = {c:df1.c.isnull().sum() for c in df1}
2 df2_null_dict = {c:df2.c.isnull().sum() for c in df2}
c:\python367-64\lib\site-packages\pandas\core\generic.py in __getattr__(self, name)
5137 if self._info_axis._can_hold_identifiers_and_holds_name(name):
5138 return self[name]
-> 5139 return object.__getattribute__(self, name)
5140
5141 def __setattr__(self, name: str, value) -> None:
AttributeError: 'DataFrame' object has no attribute 'c'
如何使用 dict 理解来实现我想要的结果?
解决方案
[]
通过很好地处理变量来使用替代选择:
df1 = pd.DataFrame({
'C':[np.nan,8,9,4,np.nan,np.nan],
'D':[1,3,5,np.nan,1,0],
'E':[np.nan,3,6,9,2,np.nan],
})
df1_null_dict = {c:df1[c].isnull().sum() for c in df1}
print (df1_null_dict)
{'C': 3, 'D': 1, 'E': 2}
替代方法是创建Series
并转换为字典:
df1_null_dict = df1.isnull().sum().to_dict()
print (df1_null_dict)
{'C': 3, 'D': 1, 'E': 2}
推荐阅读
- javascript - 如何在不是对象或函数的对象实例上进行原型设计?
- r - 如何将集合项与随机元素混合
- javascript - D3更新svg的数据
- javascript - JavaScript 字符串在传递给 Rust WebAssembly 模块时为空
- c# - 如何使用 C# 打印或显示节点中包含的值?
- python - 获取 html 属性值,其中属性名称包含带有 xpath 表达式的冒号
- python - 仅对 Pandas 数据框中的一部分列应用操作
- sql-server - 如何将版本更改为指定的数字模式?
- javascript - onclick() 更改图像不断重置
- php - 当我在 Chrome 中登录时,如何防止我的登录会话在 Opera 浏览器中继续