python处理CSV文件中字符串格式的数字,将其中大于70的数字和小于50的数字替换为-1
时间: 2024-12-25 19:26:19 浏览: 9
在Python中,处理CSV文件中字符串格式的数字并进行条件替换,你可以使用`csv`模块来读取文件,`pandas`(如果安装)进行更方便的数据处理,然后利用`str.replace()`方法实现替换。以下是一个简单的示例:
```python
import csv
import pandas as pd
# 假设我们有一个名为"data.csv"的CSV文件
# 使用pandas读取CSV文件
df = pd.read_csv('data.csv')
# 检查列中的数值,如果它们能转换为整数并且满足条件
df['column_name'] = df['column_name'].apply(lambda x: -1 if not pd.to_numeric(x, errors='coerce').isna() and (pd.to_numeric(x, errors='coerce') < 50 or pd.to_numeric(x, errors='coerce') > 70) else x)
# 如果不使用pandas,直接使用csv模块,先读取文件到list,再逐行处理
# with open('data.csv', newline='') as csvfile:
# reader = csv.reader(csvfile)
# data = []
# for row in reader:
# numbers = [int(num) if num.isdigit() else float(num) for num in row]
# if any(70 < n < 50 for n in numbers):
# row = [-1 if 50 < n < 70 else n for n in numbers]
# data.append(row)
# # 写回CSV文件
# with open('output.csv', 'w', newline='') as csvfile:
# writer = csv.writer(csvfile)
# writer.writerows(data)
```
在这个示例中,我们假设`column_name`是你想要处理的列名。这段代码会把符合条件的数字替换为-1。
阅读全文