我有一百个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
...............
先谢谢您
答案 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 }
然后将concat
与groupby
一起使用
pd.concat(d).groupby(level=0).apply(lambda x : x['Prediction'].corr(x['Groundtruth']))