Python遍历多个CSV列转换的列表筛选值追加到新列表失败如何解决
问题原因
你判断的问题点是对的:Python中for i in ext1 or ext2的写法不会同时遍历两个列表。or逻辑符的规则是:如果前面的ext1是非空对象,就直接返回ext1,所以你当前的循环实际上只遍历了ext1列的所有值,完全没有处理ext2列的数据,因此漏掉了ext2中符合条件的2024-12-22。
修改方案
如果要同时遍历ext1和ext2两个列表的所有元素,直接把两个列表拼接后遍历即可,修改后代码如下:
# 导入模块 import pandas as pd # 读取CSV文件 data = pd.read_csv("test.csv") # 列数据转列表 ext1 = data['ext1'].tolist() ext2 = data['ext2'].tolist() ext = [] # 拼接两个列表后遍历筛选 for i in ext1 + ext2: if i >= "2022-03-01": ext.append(i) print(*ext, sep="\n")
注:原写法
from pandas import *属于不推荐的导入方式,改为import pandas as pd是行业通用规范,可避免命名空间污染。你当前用字符串直接对比日期是可行的,因为CSV里的日期是ISO标准格式,字符串字典序和时间顺序一致。
运行结果
修改后输出结果和你预期一致:
2023-01-20 2024-01-21 2024-12-22
内容的提问来源于stack exchange,提问作者Chadi N
相关产品推荐
相关产品推荐

