在科研生活中,我们可能在数据测试中得到很多份csv数据,这些数据只有两列,我们在后续数据处理中可能想把这些数据放在origin中绘图,其中所有数据的x轴(即第一列数据)都相同,我们想将y轴都整合在新的文件里,保存一列x轴数据,这样方便origin作图。因此,这里记录如何通过python代码快速实现整合。
该问题用代码进行处理的思路是这样:
-
首先需要知道这些文件所处的路径位置
-
接着逐次读取每份文件,并提取某列数据
-
建立空列表,将提取出来的数据写入新的工作表中
import os
import csv
import pandas as pd
def all_csv(file_PATH = r'D:\desk\\test\\',save_file="数据整合.csv"):
该函数实现了提取多份csv文件的某列数据到新的工作表中,具体步骤为:
建立新列表,用于暂时存储提取出来的数据;
获取需要整合文件所在的文件夹位置;
使用for循环遍历文件夹的文件,逐份读取文件;
接着由于想要保留一个x轴的数据,这里使用条件语句,提取第一份文件的x与y轴数据,其他文件仅提取第二列数据,即y轴数据;
将提取的数据逐个加到所建立的空列表中;
使用concat函数将列表元素按列整合;
将整合好的数据写入新的工作表;
df_list = []
tqdm=os.listdir(file_PATH)
for i in range(0,len(tqdm)):
files_path = os.path.join(file_PATH,tqdm[i])
df = pd.read_csv(files_path)
if i ==0:
data = df.iloc[:,:]
else:
data = df.iloc[:,1]
df_list.append(data)
df2 = pd.concat(df_list,axis=1)
save_path=os.path.join(file_PATH,save_file)
df2.to_csv(save_path,index=False)
if __name__ == "__main__":
all_csv(file_PATH = r'D:\desk\\test\\',save_file="数据整合.csv")
【注意】该份代码仅适合用于整合csv文件,不适合用于xlsx文件。
提取多份csv文件特定的列整合到新的csv工作表中在科研生活中,我们可能在数据测试中得到很多份csv数据,这些数据只有两列,我们在后续数据处理中可能想把这些数据放在origin中绘图,其中所有数据的x轴(即第一列数据)都相同,我们想将y轴都整合在新的文件里,保存一列x轴数据,这样方便origin作图。因此,这里记录如何通过python代码快速实现整合。该问题用代码进行处理的思路是这样:首先需要知道这些文件所处的路径位置接着逐次读取每份文件,并提取某列数据建立空列表,将提取出来的数据写入新的工作
1.大量csv文件,以数字命名,如1.csv、2.cvs等;
2.逐个打开,对csv文件中的某一列进行格式修改;
3.将更改后的内容写入新的csv文件。
解决思路:
先读取需处理的csv文件名,去除文件夹下的无用文件,得到待处理文件地址名称和新文件保存的地址名称,分别读取每一个csv文件进行处理后写入新的文件。
if __name__ == '__main__':
filenames_in = '../Train_data/' # 输入文件的文件地址
在 Python 中,可以使用 csv 模块来读取 CSV 文件并提取其中的某几列。
下面是一个简单的示例,展示了如何提取 CSV 文件中的第一列和第三列:
import csv
# 打开 CSV 文件
with open('data.csv', 'r') as f:
# 创建 CSV 阅读器
reader = csv.reader(f)
# 读取每行数据
for...
#read csv
data1 = pd.read_csv(r'tem.csv',sep=';',header='infer')
#select specific columns
data1 = pd.read_csv(r'tem.csv',sep=';',header='infer',usecols=[0,1,3])
#set column headers
data1.columns = ['y','m','numbe..
# 打开要读取的csv文件
with open('input.csv', 'r') as input_file:
reader = csv.reader(input_file)
# 打开要写入的csv文件
with open('output.csv', 'w', newline='') as output_file:
writer = csv.writer(output_file)
# 遍历每一行数据
for row in reader:
# 提取指定列的数据
extracted_data = [row[i] for i in columns_to_extract]
# 将提取的数据写入新的csv文件中
writer.writerow(extracted_data)
在上面的示例代码中,我们指定了要提取的列索引,然后打开要读取的csv文件并遍历每一行数据,提取指定列的数据并将其写入新的csv文件中。注意要使用`newline=''`来避免写入csv文件时出现空行。