pandas 你可以将一个数据框的列设置为同一个数据框中另一个列的引用吗?

dm7nw8vv  于 2023-04-10  发布在  其他
关注(0)|答案(2)|浏览(107)

我不知道这能不能做到。
对于上下文,我有一个 Dataframe df,列为modifiedunmodified。根据用户输入标志use_modified,我可能希望使用修改或未修改的列来执行一些计算。计算发生在循环中,因此我不希望执行以下操作

for i in len(df):
  if use_modified:
    # use df["modified"][i] to do some computations
  else:
     # use df["unmodified"][i] to do some computations

我想创建一个第三列“value_to_use”,它是对modifiedunmodified的引用,具体取决于标志use_modified,然后循环不必进行if检查。

6mzjoqzu

6mzjoqzu1#

您可以使用中间变量:

col = 'modified' if use_modified else 'unmodified'

for i in range(len(df)):
    df[col][i]

但是应该使用向量化函数,而不是对每一行进行迭代。

im9ewurl

im9ewurl2#

for i in len(df):-通常不鼓励简单地迭代 Dataframe 行,因为与vectorized操作相比,性能较差。
至于这个问题-你可以定义一个保存列名的变量,并在计算中使用它:

column_to_use = "modified" if use_modified else "unmodified"

# use df[column_to_use]
for i in range(len(df)):
  i = df[column_to_use][i]

相关问题