- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
reshape 数据帧数据时出错。
KeyError: 'Requested level (date) does not match index name (None)'
更多详情如下:
# dataframe
# print(df.head(3))
...
account_id entity ae is_pc is_new_customer agency related_entity type medium our_side_entity settlement_title settlement_short_title settlement_type system_value account_status date sale
12323 entity1 ae1 PC yes MB EC TWITTER our_side_entity1 settlement_title settlement_short_title 1 0.2 active 2020-07-01 jimmy
12323 entity1 ae1 PC yes MB EC GOOGLE our_side_entity2 settlement_title settlement_short_title 1 0.5 active 2020-07-02 jimmy
1037093 Bentity1 ae1 PC yes MB APP Google our_side_entity3 settlement_title settlement_short_title 2 0 disable 2020-07-03 jimmy
1037093 Bentity1 ae1 PC yes MB APP Google our_side_entity3 settlement_title settlement_short_title 2 2020-07-04 jimmy
1037093 Bentity1 ae1 PC yes MB APP Google our_side_entity3 settlement_title settlement_short_title 2 2020-07-05 jimmy
...
然后我要分组
account, date
并对帐户的总 system_value 求和。
indices = OrderedDict([
('account_id', 'ID'),
('entity', 'entity'),
('ae', 'AE'),
('is_pc', 'PC'),
('is_new_customer', 'new_customer'),
('agency', 'agency'),
('related_entity', 'related_entity'),
('type', 'type'),
('medium', 'medium'),
('our_side_entity', 'our_side_entity'),
('settlement_title', 'settlement_title'),
('settlement_short_title', 'settlement_short_title'),
('settlement_type', 'settlement_type'),
('account_status', 'account_status'),
('sale', 'sale'),
('date', 'date'),
])
df = df.groupby(list(indices.keys())).system_value.sum() \
.unstack('date', fill_value=None) \
.assign(total=lambda x: x.sum(1)) \
.reset_index()
print(df)
df = df.rename(columns=indices). \
set_index(indices['account_id'])
错误如下:
KeyError: 'Requested level (date) does not match index name (None)'
你能告诉我我的审判有什么问题吗?
Update more details of my trial
import pandas as pd
from collections import OrderedDict
s = [
{'account_id': '123123213',
'entity': 'entity2',
'ae': 'ae1',
'is_pc': 'PC',
'is_new_customer': 'yes',
'agency': 'BV',
'related_entity': None,
'type': 'EC',
'medium': 'Facebook',
'our_side_entity': 'our_side_entity',
'settlement_title': 'settlement_title',
'settlement_short_title': 'SS',
'settlement_type': 'unknown',
'system_value': None,
'account_status': None,
'date': '2020-07-22',
'sale': 'sale1'},
]
indices = OrderedDict([
('account_id', 'ID'),
('entity', 'Entity'),
('ae', 'AE'),
('is_pc', 'PC'),
('is_new_customer', 'NEW_CUSTOMER'),
('agency', 'agency'),
('related_entity', 'related_entity'),
('type', 'type'),
('medium', 'medium'),
('our_side_entity', 'our_side_entity'),
('settlement_title', 'settlement_title'),
('settlement_short_title', 'settlement_short_title'),
('settlement_type', 'settlement_type'),
('sale', 'sale'),
('date', 'date'),
])
df = pd.DataFrame.from_records(s)
# print df.to_dict()
{'account_id': {0: '123123213'}, 'entity': {0: 'entity2'}, 'ae': {0: 'ae1'}, 'is_pc': {0: 'PC'}, 'is_new_customer': {0: 'yes'}, 'agency': {0: 'BV'}, 'related_entity': {0: None}, 'type': {0: 'EC'}, 'medium': {0: 'Facebook'}, 'our_side_entity': {0: 'our_side_entity'}, 'settlement_title': {0: 'settlement_title'}, 'settlement_short_title': {0: 'SS'}, 'settlement_type': {0: 'unknown'}, 'system_value': {0: None}, 'account_status': {0: None}, 'date': {0: '2020-07-22'}, 'sale': {0: 'sale1'}}
df = df.groupby(list(indices.keys())).system_value.sum() \
.unstack('date', fill_value=None) \
.assign(total=lambda x: x.sum(1)) \
.reset_index()
indices["account_status"] = "status"
df = df.rename(columns=indices). \
set_index(indices['account_id'])
print(df)
最佳答案
您正在按所有无值的列进行分组。在您的示例中,related_entity
的值是 None,这会导致一个空的数据框:
In [7]: df.groupby(list(indices.keys())).sum()
Out[7]:
Empty DataFrame
Columns: []
Index: []
我建议您从 groupby 子句中删除此列
related_entity
的值到
entity
的值,你可以简单地做:
df['related_entity'] = df['entity']
或者假设您有一些不想替换的值:
df['related_entity'] = df['related_entity'].fillna(df['entity'])
关于python - key 错误 : 'Requested level (date) does not match index name (None)' ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63109897/
这个问题在这里已经有了答案: Why does the print function return None? (1 个回答) 关闭 6 年前。 我正在学习理解。我得到了 print(x) 部分(我
我以为我理解了 Python 中的这两个单例值,直到我看到有人在代码中使用 return l1 or l2,其中 l1 和 l2 都是链表对象,并且(s)他想如果不为 None 则返回 l1,否则返回
我希望在 IPython Notebook 中使用列表理解生成枚举字符串列表。它有效,但给了我一个我不理解的奇怪输出。 cols = [] [cols.append('Value'+str(hour)
这个问题在这里已经有了答案: Why does the expression 0 >> import dis >>> def a(): ... return None is None is N
《Learning Python 5th》第608页有示例代码: >>> list(print(x.upper(), end=' ') for x in 'spam') S P A M [None,
我对此进行了搜索并遇到了列表返回函数,但我仍然不明白。 我试图理解为什么 Print 函数到另一个函数返回以下内容: 生日快乐 生日快乐 无 无 我的代码: def happy(): prin
除非我疯了 if None not in x 和 if not None in x 是等价的。有首选版本吗?我想 None not in 更像英语,因此更像 pythonic,但 not None i
尝试绘制 k-NN 分类器的决策边界但无法这样做得到 TypeError: '(slice(None, None, None), 0)' is an invalid key h = .01 # st
我正在尝试将可变大小的序列输入 LSTM。因此我使用生成器且批量大小为 1。 我有一个嵌入的 (sequence_length,)-input-tensor,并输出 (batch_size,equen
这个问题在这里已经有了答案: 关闭 10 年前。 Possible Duplicate: Is there any way to know if the value of an argument i
我正在尝试根据环境变量的返回值进行条件赋值。 self._TBLFilePath = iTBLFilePath or os.environ.get("CDO_TBLPATH") + os.enviro
我正在使用 marshmallow 2.0.0rc2 验证 HTTP 请求的输入数据,并在 HTTP 响应上将 SQLAlchemy 模型加载到 JSON。我偶然发现了两个问题: 首先,在通过 HTT
我想将我设置为 None 的变量与 is 进行比较,但它失败了。 当我使用 == 将此变量与 None 进行比较时,它起作用了。 这就是我所说的变量: print type(xml.a) -> 因为
我最近遇到了这种语法,我不知道有什么区别。 如果有人能告诉我其中的区别,我将不胜感激。 最佳答案 答案解释here . 引用: A class is free to implement compari
尝试使用 BorutaPy 进行特征选择。但出现 TypeError: '(slice(None, None, None), array([0, 1, 2, 3, 4]))' 是无效键。 from s
我见过使用 [] 的代码片段, [None] , None或 ()作为 placeholder 的形状, 那是 x = tf.placeholder(..., shape=[], ...) y = t
是否有逻辑推理可以解释为什么下面的 Ansible playbook 中的两个 debug 任务分别输出 "NONE" 和 "FALSE"并且不是两者都“NONE”? - hosts: 'all'
我有一个函数,它可以返回两个整数的元组或(None, None)的元组: (出于本问题的目的,我们假设此返回格式是执行此操作的唯一方法,并且无法更改) from typing import Tuple
问题: 如何遍历字典并从中删除 None 键或值? 这是我尝试过的: 代码: import copy def _ignore(data): copied_data = copy.deepcop
什么是简洁的 python 表达方式 if : # do a bunch of stuff once 最佳答案 为什么不简单, None not in lst 关于python - 简明地说 "
我是一名优秀的程序员,十分优秀!