【发布时间】:2020-06-19 01:43:52
【问题描述】:
我想存储我创建的名为“surface_coverage”的函数的生成结果。该函数以 numpy.ndarray 形式返回结果,我尝试将其存储到数据框中,但我不断收到错误消息“必须通过 2-d 输入” 这是我的代码
T = [400,500,600,700]
result = []
for t in df_G['Temperature']:
for i in T:
columns = f'G_ads_{i}'
G_CO2 = df.loc[df.Metal_Oxides == "Al2O3"].loc[df.Adsorbates == 'CO2'][columns].min()
G_H2O = df.loc[df.Metal_Oxides == "Al2O3"].loc[df.Adsorbates == 'H2O'][columns].min()
G_O2 = df.loc[df.Metal_Oxides == "Al2O3"].loc[df.Adsorbates == 'O2'][columns].min()
if t == i+273.15:
theta = surface_coverage(t,P,G_CO2,G_H2O,G_O2,x_co2,x_h2o,x_o2)
result.append(theta)
new_data = pd.DataFrame(result)
这是输出:
[array([[8.53931326e-04],
[9.34890812e-15],
[9.99146054e-01],
[1.46447007e-08]]), array([[1.07403011e-01],
[4.44545478e-13],
[8.92596825e-01],
[1.64041799e-07]]), array([[8.52759436e-01],
[1.52248154e-12],
[1.47240375e-01],
[1.88472871e-07]]), array([[9.92480337e-01],
[8.43223552e-13],
[7.51961814e-03],
[4.46422474e-08]]), array([[9.99428328e-01],
[4.36060531e-13],
[5.71659951e-04],
[1.17418613e-08]]), array([[9.99935140e-01],
[2.38117323e-13],
[6.48560836e-05],
[3.70506323e-09]])]
有什么方法可以将 numpy.bdarray 转换为 float 吗? 感谢您的宝贵时间和帮助!
【问题讨论】:
标签: python pandas numpy dataframe for-loop