用python写一段代码,逐行写入csv文件
时间: 2024-05-08 10:18:29 浏览: 97
当然可以,以下是一个简单的例子:
``` python
import csv
# 假设要写入的数据是一个二维列表
data = [['姓名', '年龄', '性别'],
['张三', 25, '男'],
['李四', 30, '女'],
['王五', 20, '男']]
# 打开 csv 文件,设置编码和写入模式
with open('data.csv', 'w', encoding='utf-8', newline='') as f:
# 创建 csv writer 对象,可以指定分隔符等参数
writer = csv.writer(f)
# 逐行写入数据
for row in data:
writer.writerow(row)
```
以上代码中,我们先定义了要写入的数据,然后打开一个名为 `data.csv` 的文件,使用 `csv.writer` 对象逐行将数据写入文件中。其中,`newline=''` 参数是为了避免在 Windows 操作系统下出现多余的换行符。
相关问题
python 把数组中的数据写入csv的列
可以使用 Python 内置的 csv 模块来写入 CSV 文件。下面是一个示例代码,假设你有一个名为 data 的数组,它包含了你想要写入 CSV 文件中的数据:
```python
import csv
# 数据数组
data = [[1, 'apple', 2.5],
[2, 'banana', 3.2],
[3, 'orange', 1.8]]
# 打开 CSV 文件进行写入
with open('output.csv', mode='w', newline='') as file:
# 创建 CSV 写入器对象
writer = csv.writer(file)
# 写入表头
writer.writerow(['ID', 'Name', 'Price'])
# 逐行写入数据
for row in data:
writer.writerow(row)
```
这段代码将会把 data 数组中的数据写入到 `output.csv` 文件中。每一行数据都会被写入到 CSV 文件的一个新行中,数组中的每个元素都会被写入到 CSV 文件的一个单元格中。在写入数据之前,我们首先创建了一个 CSV 写入器对象,然后使用该对象逐行写入数据。注意,我们还写入了表头,这是一个包含列名的行,它会被写入到 CSV 文件的第一行。
读取一个30g以上的csv文件,逐行读取该csv文件,文件有五列,当读取到行,第二列为47且第三列时间相同时,构建新的csv文件,文件一共有三列,第一列为schedule,第二列为time,第三列为weiyi,将连续相同的第三列情况下的第五列数值,写入在新建csv文件weiyi下的一个单元格中每个数值以“,”隔开,并将第三列相同的时间写入新建csv文件time中,第一列写入新建文件csv文件schedule中。
这是一个比较复杂的任务,需要使用Python的pandas库进行处理。以下是一个可能的实现方式:
```python
import pandas as pd
# 设置文件路径和输出文件路径
input_file = 'input.csv'
output_file = 'output.csv'
# 逐行读取csv文件
df = pd.read_csv(input_file, chunksize=1000000, header=None)
output_data = []
for chunk in df:
# 筛选出第二列为47的行
chunk = chunk[chunk[1] == 47]
# 按时间分组,取出每个分组的第一个时间
groups = chunk.groupby(2)
times = groups.first().reset_index()[2]
# 遍历每个分组,将连续的第三列情况下的第五列数值写入单元格中
for name, group in groups:
values = []
last_value = None
for i, row in group.iterrows():
if row[3] == last_value:
values.append(row[4])
else:
if last_value is not None:
# 将上一个分组的结果写入输出数据中
output_data.append([schedule, time, ','.join(values)])
schedule = row[0]
time = row[2]
values = [row[4]]
last_value = row[3]
# 将最后一个分组的结果写入输出数据中
output_data.append([schedule, time, ','.join(values)])
# 将输出数据写入csv文件
output_df = pd.DataFrame(output_data, columns=['schedule', 'time', 'weiyi'])
output_df.to_csv(output_file, index=False)
```
这段代码首先使用pandas的read_csv函数逐行读取csv文件。由于文件较大,我们使用chunksize参数将文件分成较小的块进行处理,以减少内存消耗。然后,我们筛选出第二列为47的行,并按时间分组。对于每个分组,我们遍历所有行,并将连续的第三列情况下的第五列数值写入单元格中。最后,我们将输出数据写入新的csv文件中。
阅读全文