首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >用iloc和列表理解来设置值

用iloc和列表理解来设置值
EN

Stack Overflow用户
提问于 2019-11-23 19:18:10
回答 2查看 992关注 0票数 2

我试图使用列表理解来迭代数据,并使用iloc为位置设置一个新的值。我已经证实它正在正确地迭代。

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

df = pd.DataFrame([np.arange(10)]*10)

#working
for i in range(10):
    for j in range(10):
        df.iloc[i,j] = 0+i

#not working 
[df.iloc[i,j] = 5 for i in range(10) for j in range(10)]

有人能解释一下为什么上面的话行不通吗?或者是什么?

EN

Stack Overflow用户

回答已采纳

发布于 2019-11-23 19:31:59

您在listcomp中做赋值语句df.iloc[i,j] = 5,所以它不起作用。df.iloc[i,j] = 5不返回让listcomp创建列表的任何内容,listcomp不允许语句。您需要在listcomp之外的辅助语句。你的列表可能会改变到这个

代码语言:javascript
运行
复制
df[:] = [[5 for j in range(10)] for i in range(10)]

Out[17]:
   0  1  2  3  4  5  6  7  8  9
0  5  5  5  5  5  5  5  5  5  5
1  5  5  5  5  5  5  5  5  5  5
2  5  5  5  5  5  5  5  5  5  5
3  5  5  5  5  5  5  5  5  5  5
4  5  5  5  5  5  5  5  5  5  5
5  5  5  5  5  5  5  5  5  5  5
6  5  5  5  5  5  5  5  5  5  5
7  5  5  5  5  5  5  5  5  5  5
8  5  5  5  5  5  5  5  5  5  5
9  5  5  5  5  5  5  5  5  5  5

但是,我想这只是一个您用来展示问题的例子,因为有更好的方法来创建这样的dataframe。

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

https://stackoverflow.com/questions/59011286

复制
相关文章

相似问题

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