如果循环一个数据框并在该循环内创建新列,它会是无穷无尽的吗?

Posted

技术标签:

【中文标题】如果循环一个数据框并在该循环内创建新列,它会是无穷无尽的吗?【英文标题】:if looping over a dataframe and creating new columns inside that loop, will it be endless? 【发布时间】:2021-11-06 20:10:38 【问题描述】:

我想遍历一个数据框并操作每一列。说我这样做:

for feature in df:
        df[feature] = df[feature].apply(lambda x: manipulate(x))
        print (str(feature) + ' ready!')

这是否会让我陷入无限循环,因为 python 将遍历所有列,包括新创建的列,或者仅来自我的初始 input-df 的列?

【问题讨论】:

你为什么不试试呢? 我做到了,而且几天后它还在继续。但是我不能排除它仍在运行代码而不是处于无限循环中 【参考方案1】:

不,这只会遍历数据框中的初始列。示例:

df = pd.DataFrame( 'x': [1,2,3,4,5], 'y': ['a','b','c','d','e'])

for col in df:
  df[col + '1'] =df[col]

返回:

    x   y   x1  y1
0   1   a   1   a
1   2   b   2   b
2   3   c   3   c
3   4   d   4   d
4   5   e   5   e

【讨论】:

以上是关于如果循环一个数据框并在该循环内创建新列,它会是无穷无尽的吗?的主要内容,如果未能解决你的问题,请参考以下文章

创建一个for循环以分块读取大数据并创建新列

熊猫:循环列表并从列中的列表中查找单词...使用列表中的找到的单词创建新列

循环创建多个数据框并写入excel

在火花数据框中使用 for 循环添加新列

如何迭代熊猫数据框并创建新列

如何拆分pyspark数据框并创建新列