关联到新的CSV文件中

时间:2019-06-23 18:19:11

标签: python pandas csv correlation

我有一百个CSV文件:

Merge_Prediction_Groundtruth_Speed1.0_Buffer100.csv
Merge_Prediction_Groundtruth_Speed1.0_Buffer200.csv
Merge_Prediction_Groundtruth_Speed1.0_Buffer300.csv
Merge_Prediction_Groundtruth_Speed2.0_Buffer100.csv
Merge_Prediction_Groundtruth_Speed2.0_Buffer200.csv
Merge_Prediction_Groundtruth_Speed2.0_Buffer300.csv
...............

所有CSV文件的结构数据如下:

BS      Prediction  Ground truth
BS1-BS1  0          0
BS1-BS2  0          2
BS1-BS3  2         35
BS1-BS4  0          0
BS1-BS5  0          0
BS1-BS6  0          2
BS1-BS7  0          0
BS1-BS8  0          2
BS1-BS9  0          0
BS2-BS1  0          1
...............

我想分析预测列和地面真理列之间的相关性。 我使用了这段代码:

df['Prediction'].corr(df['Ground truth'])

如果我一一分析,那将永远。 是否可以一次分析相关性,并根据文件的最后标题将其同时构建到一个CSV文件中? 我的预期结果如下:

Files               Correlation
Speed1.0_Buffer100  0.65
Speed1.0_Buffer200  0.51
Speed1.0_Buffer300  0.73
Speed2.0_Buffer100  0.36
Speed2.0_Buffer200  0.59
Speed2.0_Buffer300  0.44
...............

先谢谢您

1 个答案:

答案 0 :(得分:2)

您可以将csv文件保存在文件夹中,然后阅读它们

l=['Merge_Prediction_Groundtruth_Speed1.0_Buffer100.csv',
'Merge_Prediction_Groundtruth_Speed1.0_Buffer200.csv'
...]

喜欢:

d={x: pd.read_csv(x) for x in l }

然后将concatgroupby一起使用

pd.concat(d).groupby(level=0).apply(lambda x : x['Prediction'].corr(x['Groundtruth']))