python如此从没有表头列名的csv文件中根据其第5第6列与txt文件中第5第6列具有相同数据的条件筛选出特定的行,并保留这些特定行所在行的其他数据
时间: 2024-02-17 14:00:29 浏览: 73
当csv文件没有列名时,可以通过以下代码读取csv文件:
```python
import csv
with open('your_csv_file.csv', 'r') as f:
reader = csv.reader(f)
data = [row for row in reader]
```
这里使用csv模块的reader方法,将csv文件的数据读取到一个列表中。然后,通过以下代码可以完成你的操作:
```python
with open('your_txt_file.txt', 'r') as f:
txt_data = f.readlines()
selected_rows = []
for row in data:
if row[4] + row[5] in txt_data:
selected_rows.append(row)
# 保留特定行的其他数据
result = []
for row in selected_rows:
result.append(row[:4] + row[6:])
print(result)
```
这里首先使用readlines方法读取txt文件中的数据。然后,遍历csv文件中的每一行数据,判断其第5列和第6列的值是否在txt文件中出现过。如果出现过,则将该行数据加入到selected_rows列表中。接着,遍历selected_rows列表中的每一行数据,将该行数据的第1到第4列和第7列到最后一列数据存入result列表中。最终,result中存储的就是符合条件的行数据及其其他数据。
请注意,这个方法可能会比pandas的方法更慢,特别是当csv文件非常大时。因此,如果你需要处理大型数据集,建议使用pandas库进行处理。
阅读全文