我不是巨 Python 高手,如果这是个愚蠢的问题,请原谅.
我已经导入了一个CSV,它已经导入到Pandas 中,叫做pw
,看起来是这样的:
datetime outlet inlet flow
0 2023-04-12 00:00:00 38.5 48.5 3.3
1 2023-04-11 23:55:00 38.5 48.0 3.0
2 2023-04-11 23:50:00 38.5 48.5 3.6
3 2023-04-11 23:45:00 38.5 48.0 3.3
4 2023-04-11 23:40:00 38.5 48.0 3.3
... ... ... ... ...
我做了一些条件概率查找表:
pgf = pw.groupby('flow')['outlet'].value_counts()/pw.groupby('flow')['outlet'].count()
fgp = pw.groupby('outlet')['flow'].value_counts()/pw.groupby('outlet')['flow'].count()
可通过如下方式访问:
pgf[some flow value][some pressure value]
fgp[some pressure value][some flow value]
我想在pw
中创建一个pgf
和fgp
列.我想我应该能够写下:
pw['p_p'] = pgf[pw['flow']][pw['outlet']]
我认为它将从每一行获取流量和出口值来计算概率值,并将其放在‘p_p’列中,但是当我运行它时,我得到以下消息:
KeyError:‘[38.5 38.5 38.5...47.5 47.5]不在索引中’
但我不明白,当pgf
是用pw
的数据创建的时候,怎么会这样
PGF为<class 'pandas.core.series.Series'>
我可以通过以下方式绕过此问题:
for i in range(len(pw)):
flow = pw['flow'].loc[i]
pres = pw['outlet'].loc[i]
然而,我觉得这肯定是实现这一目标的最慢方式