python-3.x - KeyError: ('var1', '发生在索引 16')
问题描述
我在以下代码行收到这个奇怪的错误消息:KeyError: ('var1', 'occured at index 16'):
df['var1'] = df.apply(lambda row: (row['var1']*row['var2']), axis = 1)
我将 df DataFrame 的 2 列相乘。并且16 in df.index
是True
。我可以正常访问第 16 行。如果我删除该行,错误仍然存在。
对此有什么想法吗?
编辑:根据要求,数据样本:
X var1 Y \
0 US4642867729 22.3052 Korea; Republic (S. Korea)
1 US4642867729 5.9139 Korea; Republic (S. Korea)
2 US4642867729 3.0799 Korea; Republic (S. Korea)
3 US4642867729 2.9647 Korea; Republic (S. Korea)
4 US4642867729 2.5798 Korea; Republic (S. Korea)
5 US4642867729 2.5281 Korea; Republic (S. Korea)
6 US4642867729 2.3359 Korea; Republic (S. Korea)
7 US4642867729 2.2434 Korea; Republic (S. Korea)
8 US4642867729 1.8624 Korea; Republic (S. Korea)
W Z \
0 Information Technology US4642867729
1 Information Technology US4642867729
2 Materials US4642867729
3 Health Care US4642867729
4 Information Technology US4642867729
5 Financials US4642867729
6 Consumer Discretionary US4642867729
7 Financials US4642867729
8 Materials US4642867729
var2
0 0.16258420849834973043179786600376246497035026...
1 0.16258420849834973043179786600376246497035026...
2 0.16258420849834973043179786600376246497035026...
3 0.16258420849834973043179786600376246497035026...
4 0.16258420849834973043179786600376246497035026...
5 0.16258420849834973043179786600376246497035026...
6 0.16258420849834973043179786600376246497035026...
7 0.16258420849834973043179786600376246497035026...
8 0.16258420849834973043179786600376246497035026...
谢谢你的时间!
解决方案
如果您只是想将两列相乘并将结果存储在第一列中,您可以使用比使用apply
and更简单的解决方案来解决这个问题lambda
:
df['var1'] *= df['var2']
推荐阅读
- html - 为什么模糊滤镜在此示例中不起作用
- firebase - Vue + Firebase“给定的登录提供程序已禁用”
- wordpress - Bitnami wordpress 网站通过网络访问时出现错误 ERR_CONNECTION_TIMED_OUT
- javascript - 从 Angular 组件中的服务中捕获承诺中的错误
- typo3-8.x - TYPO3 扩展 flexform 找不到文件
- javascript - 使用 Angular 2/4 显示下拉默认值
- python - 由于哪个 pip 指向其他版本,我应该如何删除多个 python 版本?
- sql-server - SQL 服务器中的字符串或二进制数据将被截断错误。如何知道抛出此错误的列名
- android - 如何了解锂离子或其他电池技术?
- c++ - 数组、对象、类来组织具有多项选择和真/假问题的测试问卷程序