python读取文件,将几列的数据提取出来保存在另一个文件
时间: 2023-05-20 11:03:09 浏览: 334
可以使用Python的pandas库来读取文件并提取数据。以下是一个示例代码:
```python
import pandas as pd
# 读取文件
df = pd.read_csv('input_file.csv')
# 提取需要的列
new_df = df[['column1', 'column2', 'column3']]
# 保存到另一个文件
new_df.to_csv('output_file.csv', index=False)
```
其中,`input_file.csv`是需要读取的文件名,`column1`、`column2`和`column3`是需要提取的列名,`output_file.csv`是保存结果的文件名。这段代码会将`input_file.csv`中的`column1`、`column2`和`column3`三列数据提取出来,并保存到`output_file.csv`中。
相关问题
python将一个csv文件中几列数据标准化的代码
要将CSV文件中的几列数据进行标准化,你可以使用Python中的`sklearn`库中的`StandardScaler`类。以下是一个示例代码,它将CSV文件中的指定列数据进行标准化:
```python
import csv
from sklearn.preprocessing import StandardScaler
# 读取 CSV 文件
data = []
with open('input.csv', 'r') as file:
reader = csv.DictReader(file)
for row in reader:
data.append(row)
# 提取需要标准化的列数据
columns_to_normalize = ['column1', 'column2', 'column3'] # 替换为你需要标准化的列名
# 提取需要标准化的数据
X = []
for row in data:
x = [float(row[column]) for column in columns_to_normalize]
X.append(x)
# 使用StandardScaler进行标准化
scaler = StandardScaler()
scaled_data = scaler.fit_transform(X)
# 将标准化后的数据更新回原始数据
for i, row in enumerate(data):
for j, column in enumerate(columns_to_normalize):
row[column] = scaled_data[i][j]
# 写入更新后的数据到新的 CSV 文件
fieldnames = data[0].keys() # 获取字段名
with open('output.csv', 'w', newline='') as result_file:
writer = csv.DictWriter(result_file, fieldnames=fieldnames)
writer.writeheader() # 写入字段名
writer.writerows(data)
```
请将代码中的 `'input.csv'` 替换为你要处理的CSV文件的路径,`['column1', 'column2', 'column3']` 替换为你需要标准化的列名,`'output.csv'` 替换为输出结果的文件路径。
在这个示例中,我们首先读取CSV文件,并将每一行存储在 `data` 列表中。然后,我们提取需要标准化的列数据,并将它们存储在一个新的列表 `X` 中。接下来,我们使用 `StandardScaler` 对 `X` 进行标准化处理。最后,我们将标准化后的数据更新回原始数据,并将更新后的数据写入到新的CSV文件中。
python提取csv文件几列并保存为csv
要提取csv文件的几列并保存为csv,可以使用以下代码:
```python
import csv
# 要提取的列的索引
columns = [0, 3, 5]
# 读取原始csv文件
with open('原始文件.csv', 'r') as f:
reader = csv.reader(f)
header = next(reader) # 获取表头
# 获取要提取的列的表头
header_new = [header[i] for i in columns]
# 逐行读取数据并提取要保留的列
rows_new = []
for row in reader:
row_new = [row[i] for i in columns]
rows_new.append(row_new)
# 保存提取后的csv文件
with open('提取后的文件.csv', 'w', newline='') as f:
writer = csv.writer(f)
writer.writerow(header_new)
writer.writerows(rows_new)
```
在这个代码中,首先定义了要提取的列的索引,然后使用csv模块读取原始csv文件,获取表头和数据。接着,根据要提取的列的索引,获取要保留的列的表头和数据,并保存到一个新的列表中。最后,使用csv模块将新的表头和数据写入到新的csv文件中。