【问题标题】:Python: Pandas dataframe and for loop - seperate row variable outside of loop bodyPython:Pandas 数据框和 for 循环 - 循环体之外的单独行变量
【发布时间】:2022-01-16 19:14:49
【问题描述】:

我有一些表格数据(基于一些熊猫数据框),格式如下:

Index Name Region 1 ... Region n
Index data Name data Region 1 data Region 1 data Region 1 data

现在我想遍历数据行并为每一行分隔某个字符串变量中的列 Name 的数据和所有 1≤ 的列 Region i 的数据i≤n 在某种数组或列表中。

我知道的方法如下:

for index, row in data.iterrows():
        name = row.values[0]
        regions = row.filter(regex = '^Region').values
        
        body of loop

在 for 循环的主体中,我再也不需要变量 row,只需要名称和区域。所以对我来说,代码感觉有点过载。

我现在的问题是:

他们是否有某种方法可以让一切变得更简单,也许是某种 for 循环:

for index, name, regions in data():
     body of loop

【问题讨论】:

    标签: python pandas dataframe for-loop


    【解决方案1】:

    首先,在使用 pandas 时,最好尽可能避免使用 for 循环。使用 pandas 方法会更快,而且你可以用 for 循环做很多事情。

    对于您的情况,您可以在函数中定义要执行的操作,并将其传递给 pandas 数据帧的 apply() 方法。例如:

    def body_for_loop(row, region_index): 
        name = row["Name"]
        regions = row.filter(regex = '^Region').values
        # body of loop
    

    现在当你想使用它时,你只需调用:

    df.apply(body_fro_loop, axis=1)
    

    【讨论】:

      猜你喜欢
      • 2020-04-05
      • 1970-01-01
      • 2020-04-21
      • 2018-09-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多