pandas - 为什么会出现错误 AttributeError: 'bool' object has no attribute 'copy' 显示但一些值正在按需要打印?
问题描述
import pandas as pd
import datetime
import numpy as np
df = pd.read_excel('/content/drive/My Drive/python/NSE 010120-181020.xlsx')
df.head()
df['Date'] = pd.to_datetime(df['Date'] , format='%Y-%m-%d')
df['Date'] = pd.to_datetime(df['Date'] , format='%d-%m-%Y')
df.info()
Date = df['Date']
Date
from datetime import datetime
df['Percentage Change'] = ((df['Open'] - df['Close'])/100).astype(float)
df['Percentage Change']
df['Marker'] = np.nan
for i in range(len(df['Marker'])):
if df['Percentage Change'][i] > 0:
df['Marker'][i] =='Profit'
elif df['Percentage Change'][i] < 0:
df['Marker'][i] = 'Loss'
elif df['Percentage Change'][i] == 0:
df['Marker'][i] = 'Flat'
df['Marker']
AttributeError Traceback (most recent call last)
<ipython-input-82-e9145deac6fc> in <module>()
1 for i in range(len(df['Marker'])):
2 if df['Percentage Change'][i] > 0:
----> 3 (df['Marker'][i] =='Profit').copy(deep=True)
4 elif df['Percentage Change'][i] < 0:
5 (df['Marker'][i] == 'Loss').copy(deep=True)
AttributeError: 'bool' object has no attribute 'copy'
我将标记值设为 NaN,但损失值按需要打印。为什么利润和平面值是 nan 而不是损失值?这个错误是什么意思 AttributeError: 'bool' object has no attribute 'copy'
0 NaN
1 Loss
2 NaN
3 NaN
4 NaN
...
195 NaN
196 NaN
197 Loss
198 NaN
199 Loss
解决方案
你打错=
了==
。替换df['Marker'][i] =='Profit'
为df['Marker'][i] = 'Profit'
,看看它是否有效。
注意如果数据框不更新自身,也替换df['Marker'][i] =
为df.at[i, 'Marker'] =
. 这是就地为单个单元格赋值的标准语法。
推荐阅读
- c# - 正则表达式替换以匿名化名称
- javascript - 从html获取高度并插入状态
- git - 使用 Gogs 和 Drone 构建 CI/CD 平台时,管道出现“无法解析主机”
- cookies - 记住我 cookie cakephp 4 在注销后无法正常工作
- web-scraping - 我用scrapy得到403,它可以在浏览器和wget中完美运行
- python - 熊猫将一些列值转换为行
- node.js - 如何使用 NodeJs 监听和订阅 HTTP 事件?
- android - 使 SlidingUpPanelLayout 站在底部导航栏上方
- reactjs - 超过 20 个字段的状态更新问题
- c++ - 在使用对象发出信号后立即调用 deleteLater 是否安全?