dataframe 采样后,再计算和报错 咋回事?

色郎中 2017-05-02 01:15:20

df=pd.DataFrame(np.random.randn(5,5))
print(df)
print(df.apply(lambda x: x.sum()))
df1=df.loc[0].sample(3)
print(df1)
print(df1.apply(lambda x: x.sum()))



0 1 2 3 4
0 -2.021641 0.202247 -0.357294 -0.308477 0.301995
1 1.395682 1.627884 -0.156677 0.768417 -0.348573
2 1.143972 1.952319 -0.797111 1.719115 0.636497
3 0.819878 -0.756803 -0.926412 0.177137 -0.354646
4 -0.640460 0.181148 1.037831 -0.864291 0.145361
上面是生成的数据

0 0.697431
1 3.206794
2 -1.199663
3 1.491900
4 0.380635
dtype: float64
上面是每列 求和的结果

Traceback (most recent call last):
File "E:/2017/Anaconda3/pandasExamples/test.py", line 15, in <module>
print(df1.apply(lambda x: x.sum()))
File "C:\Users\sin\Anaconda3\lib\site-packages\pandas\core\series.py", line 2294, in apply
mapped = lib.map_infer(values, f, convert=convert_dtype)
File "pandas\src\inference.pyx", line 1207, in pandas.lib.map_infer (pandas\lib.c:66124)
File "E:/2017/Anaconda3/pandasExamples/test.py", line 15, in <lambda>
print(df1.apply(lambda x: x.sum()))
AttributeError: 'float' object has no attribute 'sum'
4 0.301995
3 -0.308477
0 -2.021641
Name: 0, dtype: float64
这是在第一行里随机取的3个数据,想对这3个数据求和时,报错了,这是什么情况呢?
...全文
189 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
色郎中 2017-05-02
  • 打赏
  • 举报
回复
df1=pd.DataFrame(df.loc[0].sample(3))
再来一次,好像就对了
色郎中 2017-05-02
  • 打赏
  • 举报
回复
上面打印结果 对原始的数据的每列求和正常,,而采样后的数据再求和就报错 不解啊

37,719

社区成员

发帖
与我相关
我的任务
社区描述
JavaScript,VBScript,AngleScript,ActionScript,Shell,Perl,Ruby,Lua,Tcl,Scala,MaxScript 等脚本语言交流。
社区管理员
  • 脚本语言(Perl/Python)社区
  • IT.BOB
加入社区
  • 近7日
  • 近30日
  • 至今

试试用AI创作助手写篇文章吧