从csv中逐行读取内容写入列表
时间: 2024-10-07 18:08:17 浏览: 30
在Python中,你可以使用pandas库方便地从CSV文件中逐行读取内容并写入列表。以下是一个基本的步骤:
首先,确保已经安装了pandas库,如果没有,可以使用以下命令安装:
```bash
pip install pandas
```
然后,你可以使用下面的代码来读取CSV文件并将每一行作为列表元素添加到总列表中:
```python
import pandas as pd
# 初始化一个空列表来存储每行数据
data_list = []
# 读取CSV文件
df = pd.read_csv('your_file.csv')
# 逐行读取并添加到列表中
for index, row in df.iterrows():
data_list.append(row.tolist()) # 将Series转换为list
# 如果你想得到的是二维列表,每个元素对应一行数据
# 可以稍微修改一下,如:
# data_list = [[cell.value for cell in row] for _, row in df.iterrows()]
print(data_list)
```
在这个代码中,`your_file.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文件中。
如何用Python逐行读取一个CSV或其他电子表格文件,并将特定数据写入另一个指定的表格(如Excel或CSV)中的对应位置?
在Python中,可以使用pandas库来方便地处理CSV和其他电子表格文件。以下是一个基本步骤,展示如何逐行读取CSV文件并写入另一份CSV文件:
```python
import pandas as pd
# 读取源CSV文件
source_df = pd.read_csv('source_file.csv')
# 如果你想写入Excel文件,可以这样做:
# 导入pandas的Excel writer模块
# excel_writer = pd.ExcelWriter('destination_file.xlsx', engine='openpyxl') # 使用openpyxl引擎
# 或者
# excel_writer = pd.ExcelWriter('destination_file.xlsx', engine='xlsxwriter') # 使用xlsxwriter引擎
# 逐行操作,例如只保留特定列或修改某列的数据
data_to_write = source_df[['column1', 'column2']] # 根据需要选择列
# 写入目标文件
data_to_write.to_csv('destination_file.csv', index=False) # 对于CSV文件
# data_to_write.to_excel(excel_writer, sheet_name='Sheet1', index=False) # 对于Excel文件,替换'Sheet1'为你想要的sheet名
# 关闭Excel writer(如果之前打开)
# excel_writer.save()
# 注意:对于大型文件,最好一次性处理一行数据,而不是一次性加载整个DataFrame到内存,以避免内存溢出。
阅读全文