首页 > 解决方案 > 如何根据特定列的值从 CSV 文件中选择值

问题描述

以这个 csv 为例:

Col1, Col2
1,3,
0,5,
1,4
0,7

假设我有一个列表,并且只有在同一行中Col2的值为 时,我才想将 的值附加到列表中。结果列表应该是.Col11[3,4]

我如何在不使用 pandas 的情况下做到这一点iterrows()

标签: pythonexcelpandasloopscsv

解决方案


  1. 我认为.loc是最pythonic和最简单的方法。

    df.loc[df['Col1'] == '1']['Col2'].to_list()
    
  2. 另一种使用np.where

    import numpy as np
    df['Col3'] = np.where(df['Col1'] == 1, df['Col2'], '')
    listt = list(filter(None,df['Col3'].to_list()))
    
  3. zip是 的循环替代方案iterrows

    listt = []
    for x, y in zip(df['Col1'], df['Col2']):
        if x == 1:
            listt.append(y)
    

推荐阅读