首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >AttributeError:“numpy.ndarray”对象没有属性“”apply“”

AttributeError:“numpy.ndarray”对象没有属性“”apply“”
EN

Stack Overflow用户
提问于 2018-07-18 02:24:21
回答 2查看 19.5K关注 0票数 2
代码语言:javascript
运行
复制
Department = input("Is there a list you would like to view")


readfile = pd.read_csv('6.csv')
filevalues= readfile.loc[readfile['Customer'].str.contains(Department, na=False), 'June-18\nQty'] 
filevalues = filevalues.fillna(int(0))

int_series = filevalues.values.astype(int) 
calculated_series = int_series.apply(lambda x: filevalues*1.3)


print(filevalues)

我得到了这个错误:AttributeError: 'numpy.ndarray' object has no attribute 'apply'

我已经浏览了这个网站,但似乎没有解决方案。在本系列中,我只想将数据乘以1.3。谢谢

EN

回答 2

Stack Overflow用户

发布于 2018-07-18 02:40:15

这里有两个问题。

  1. 通过获取.values,您实际上访问了底层的numpy数组;您不再拥有pandas.Seriesnumpy数组没有apply方法。
  2. 您正在尝试使用apply进行简单的乘法,这将比使用矢量化方法慢一个数量级。

如下所示:

代码语言:javascript
运行
复制
import pandas as pd
import numpy as np

df = pd.DataFrame({'a': np.arange(1000, dtype=np.float64)})
print(type(df['a']))
# Gives pandas.core.series.Series

print(type(df['a'].values))
# Gives numpy.ndarray

# The vectorized approach
df['a'] = df['a'] * 1.3
票数 1
EN

Stack Overflow用户

发布于 2018-07-18 02:39:41

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

https://stackoverflow.com/questions/51388050

复制
相关文章

相似问题

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