【问题标题】:Python loop over excel file each rows to met condtion and get value from fist columnsPython循环遍历excel文件的每一行以满足条件并从第一列获取值
【发布时间】:2021-04-13 10:24:26
【问题描述】:

**我是新的 python DF,我有一个两列的 Excel 文件,我想在其中循环遍历它的行。如果列“数量”超过其行的值为零,我想从第一列获取每一行的横档值并保留在列表中。

import pandas as pd**

    df = pd.read_excel(file)
    reuslt =[]
    for i in range(len(df)):
        amount = df.iloc[i,1]
        result.append(shelf)
    
    Example detial  excel file
    shelf  amount
    11        0
    13        1
    15        8
    18        0
    20        6
    22        0
    25        1`

【问题讨论】:

    标签: python pandas loops filter


    【解决方案1】:

    您无需显式迭代 - Pandas 为您提供了轻松搜索或过滤行所需的所有工具。

    import pandas as pd
    
    df = pd.DataFrame(
        {
            'shelf': [11,13,15,18,20,22,25],
            'amount': [0,1,8,0,6,0,1]
        }
    )
    
    # get DataFrame onyl with "zero amount shelfs"
    df_zero_shelfs = df[df['amount']==0]
    df_zero_shelfs
    
    ##################
    Output:
    
      shelf amount
    0   11  0
    3   18  0
    5   22  0
    
    ##################
    
    # cast zero amount shelfs IDs to list
    list_zero_shelfs = list(df_zero_shelfs['shelf'].values)
    list_zero_shelfs
    ##################
    Output:
    
    [11, 18, 22]
    

    [编辑]
    如果你真的想坚持 for 循环(不建议):

    result = []
    for row in df.values:
        if row[1] == 0:
            result.append(row[0])
    

    【讨论】:

    • 在这种情况下不建议使用 For 循环,因为 pandas 支持更快、更简单的方法,但如果你真的想要,我在我编辑的答案中添加了这样的示例。请记住,如果我的解决方案解决了您的问题,请点赞并将其标记为正确答案,谢谢
    • 非常感谢,如果循环出现,您能否提供建议?因为我的金额总是突然改变然后检查状态“完成”,如果完成我将在 amount2 货架金额状态 costtid 11 0 Done 13 1 unfill 15 8 unfill 18 0 Done 20 6 unfill 22 0 Done 25 1` unfill 中记录costid跨度>
    • 对不起,我不明白你在这里问什么。我为您的原始问题提出了一个解决方案,后来根据您的后续请求添加了一个“脏”循环,但您似乎一直在更改您的问题。请考虑一下您想要实现的目标,并在您的原始问题中明确说明
    • 谢谢您的回答,先生,
    猜你喜欢
    • 2016-01-22
    • 2023-01-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多