【发布时间】:2021-10-26 21:57:17
【问题描述】:
我是 Python 循环的新手,刚刚遇到一个奇怪的问题。我正在对多个数据帧进行一些计算,为了简化问题,这里有一个插图。
假设我有 3 个填充有 NaN 的数据框:
# generate NaN entries
data = np.empty((15, 10))
# create dataframe
data[:] = np.nan
dfnan = pd.DataFrame(data)
df1 = dfnan
df2 = dfnan
df3 = dfnan
在这一步之后,所有三个数据框都按预期给了我NaN。
但是,如果我在一个块中添加两个 for 循环,如下所示:
for i in range(0, 15, 1):
df1.iloc[i] = 0
for j in range(0, 15, 1):
df2.iloc[j] = df1.iloc[j].transform(lambda x: x+1)
然后所有df1、df2 和df3 给我1 条目。但不应该是这样吗:
df1 填充 0,df2 填充 1 和 df3 填充 NaN(因为我没有对其进行任何更改)?
为什么会这样以及如何更改它以获得想要的结果?
【问题讨论】:
-
尝试在第一个 for 循环之后打印所有 3 个变量?输出是什么?
-
@Code-Apprentice 是的,问题已解决。非常感谢!
标签: python pandas dataframe for-loop