Python 如何通过在第一列末尾添加一列,将两个csv文件合并为一个?
我只需要将第二个CSV文件的列添加到第一个CSV文件中 示例CSV文件#1 时间压力RH Dewpt Alt 价值价值 对于N行数 示例CSV文件#2 平滑温度 价值观 我只是想成功 时间压力RH Dewpt Alt平滑温度 价值价值 还有一个有标题,另一个没有 这里是我到目前为止的示例代码,但是输出是文件1的最后一行,旁边是文件2的完整数据集Python 如何通过在第一列末尾添加一列,将两个csv文件合并为一个?,python,csv,append,Python,Csv,Append,我只需要将第二个CSV文件的列添加到第一个CSV文件中 示例CSV文件#1 时间压力RH Dewpt Alt 价值价值 对于N行数 示例CSV文件#2 平滑温度 价值观 我只是想成功 时间压力RH Dewpt Alt平滑温度 价值价值 还有一个有标题,另一个没有 这里是我到目前为止的示例代码,但是输出是文件1的最后一行,旁边是文件2的完整数据集 ##specifying what they want to open File = open(askopenfilename(), 'r') ##re
##specifying what they want to open
File = open(askopenfilename(), 'r')
##reading in the other file
Averaged = open('Moving_Average_Adjustment.csv','r')
##opening the new file via raw input to write to
filename = raw_input("Enter desired filename, EX: YYYYMMDD_SoundingNumber_Time.csv; must end in csv")
New_File = open(filename,'wb')
R = csv.reader(File, delimiter = ',')
## i feel the issue is here in my loop, i don't know how to print the first columns
## then also print the last column from the other CSV file on the end to make it mesh well
Write_New_File = csv.writer(New_File)
data = ["Time,Press,Dewpt,RH,Alt,AveragedTemp"]
Write_New_File.writerow(data)
for i, line in enumerate(R):
if i <=(header_count + MovingAvg/2):
continue
Time,Press,Temp,Dewpt,RH,Ucmp,Vcmp,spd,Dir,Wcmp,Lon,Lat,Ele,Azi,Alt,Qp,Qt,Qrh,Qu,Qv,QdZ=line
for i, line1 in enumerate(Averaged):
if i == 1:
continue
SmoothedTemperature = line1
Calculated_Data = [Time,Press,Dewpt,RH,Alt,SmoothedTemperature]
Write_New_File.writerow(Calculated_Data)
##指定要打开的内容
文件=打开(askopenfilename(),'r')
##正在读取另一个文件
平均=开放('Moving_Average_Adjustment.csv','r')
##通过要写入的原始输入打开新文件
文件名=原始输入(“输入所需文件名,例如:YYYYMMDD\u SoundingNumber\u Time.csv;必须以csv结尾”)
新建文件=打开(文件名为“wb”)
R=csv.reader(文件,分隔符=',')
##我觉得问题就在这里,我不知道如何打印第一列
##然后还打印另一个CSV文件的最后一列,使其能够很好地啮合
Write_New_File=csv.writer(新_文件)
数据=[“时间、压力、湿度、高度、平均温度”]
Write_New_File.writerow(数据)
对于i,枚举(R)中的行:
如果我如果你想走这条路,pandas
使csv操作非常容易。假设前两个示例表位于名为test1.csv
和test2.csv
的文件中:
>>> import pandas as pd
>>> test1 = pd.read_csv("test1.csv")
>>> test2 = pd.read_csv("test2.csv")
>>> test3 = pd.concat([test1, test2], axis=1)
>>> test3
Time Press RH Dewpt Alt SmoothedTemperature
0 1 2 3 4 5 6
[1 rows x 6 columns]
此新表可以通过数据帧方法保存到.csv
文件中
如您所述,如果其中一个文件没有标题,您可以在读取该文件时指定:
>>> test2 = pd.read_csv('test2.csv', header=None)
然后在panda
中手动更改标题行。对我有效的规则是“之前,将其放入屏幕。如果可以将所需输出放入屏幕,则可以将其放入文件”我不能使用panda。不幸的是,这段代码必须足够通用,它可以被6所不同大学的不同人员使用,而不需要下载任何东西。