使用csv文件中的数据选择另一个csv中的数据

时间:2018-11-21 12:40:30

标签: python csv

我对python很陌生,现在被困住了。

我正在尝试将现场记录与设备中的数据文件进行匹配。

我有两个文件record.csv和workingfile.csv。
record.csv中的列:

DOE,Plot_ID,type 

workingfile.csv中的列:

JULIAN_DAYS,HP_12CH4,Day_of_exp,HP_13CH4,HP_Delta_iCH4_30s,12CO2,13CO2,CO2_tot,CH4_tot,Delta_30s_iCO2

对于record.csv的每一行,我想从workingfile.csvDay_of_exp之间包含DOE的行中选择DOE + measuringtime。并使用这些选定的行和record.csv

中的列创建一个新文件

我有很多数据,这是我决定尝试使用python的原因。

非常感谢任何人的帮助!我尝试了一些没有成功的事情...

2 个答案:

答案 0 :(得分:0)

我不明白什么是测量时间,但是您可以尝试:

XWPFTable table = doc.CreateTable();
table.Width = 4500;
table.SetColumnWidth(0, 100);

这用于比较不同csv中的两列。

答案 1 :(得分:0)

好吧,我设法做点事!我在这里分享,以防万一。随意批评,这可能不是最好的方法。

working_file = "workingfile.csv"
record_file = "record.csv"
output = "output.csv"
measure_t = 0.004167 #in days, 0.004167 day corresponds to a 6 minutes measurement


out = csv.writer(open(output, "w"))
out.writerow(["DOE", "Plot_ID", "type", "CO2", "CH4"])

data1 = pd.read_csv(working_file)
data2 = pd.read_csv(record_file)

DOE1 = data1.Day_of_exp.tolist()
DOE2 = data2.DOE.tolist()
ID = data2.Plot_ID.tolist()
typ = data2.type.tolist()
CO2 = data1.CO2_tot.tolist()
CH4 = data1.CH4_tot.tolist()

for x in DOE2:
    for v in DOE1:
        if x <= v <= x + measure_t:
            n = DOE2.index(x)
            y = ID[n]
            z = typ[n]
            co2 = CO2[n]
            ch4 = CH4[n]
            out.writerow((v,y,z,co2,ch4))    

干杯!