我有一个熊猫DataFrame,它可以测量化学浓度。每个观察都带有时间戳,并且分别记录。我想通过在每个时间戳记中包含一行所有化学测量值的方式来更好地组织这一过程。如果在此期间没有化学物质的测量值,我想在该位置粘贴占位符-999。
我确实有一些工作要做,但这只是一个巨大的循环,效率极低,而且使我感到肮脏。我浏览了文档,到目前为止没有任何帮助。 (请记住,在您对我的判断过多之前,我还很陌生!)
def f(string):
if og_data.loc[(og_data.local_time == time)&...
(og_data.parameter == string), 'value'].empty:
return -999
else:
return(og_data.loc[(og_data.local_time == time)&...
(og_data.parameter == string), 'value'].array[0])
for time in local_time:
h2so4.append(f('h2so4'))
naoh.append(f('naoh'))
o2.append(f('o2'))
pbno3.append(f('pbno3'))
new_data['time'] = local_time
new_data['h2so4'] = h2so4
new_data['naoh'] = naoh
new_data['o2'] = o2
new_data['pbno3'] = pbno3
我想要的是这样的
time chemical value
12:00 pbno3 1.5
12:00 h2so4 7
12:00 naoh 30
12:15 o2 25
12:15 pbno3 2
12:30 naoh 27
成为这个:
time h2so4 naoh o2 pbno3
12:00 7 30 -999 1.5
12:15 -999 -999 25 2
12:30 -999 27 -999 -999
谢谢!