从数据帧字典中获取值

时间:2017-04-26 14:53:20

标签: python pandas dictionary dataframe

我已将数据框转换为字典,并已将其中一个字典值用于'for'函数,但是它给了我以下错误?

df = 
Metal                         Medium Carbon Steel
Max Compressive Stress/MPa                    305
Cost per m^3/$                               4301
I/mm^4                                3.27869e+07
inner_radius_quarted                  5.82544e+07
inner_radius/mm                           87.3639
thickness/mm                              12.6361
volume/mm^3                               12636.1
cost/$                                  0.0543477

a1 = df.to_dict()

P = [P -1,P +1]

for i in P:
   x = (i * L * y) / (a1[1][u'I/mm^4'] * 4)
if x > a1[1][u'Max Compressive Stress/MPa']:
    print "A point load of", i, ", will break the beam"
else:
    print "A point load of", i, ", will not break the beam"



KeyError                                  Traceback (most recent call last)
<ipython-input-255-8d9325dc6d75> in <module>()
      2 
      3 for i in P:
----> 4     x = (i * L * y) / (a1[1][u'I/mm^4'] * 4)
      5     if x > a1[1][u'Max Compressive Stress/MPa']:
      6         print "A point load of", i, ", will break the beam"

KeyError: 1

1 个答案:

答案 0 :(得分:1)

你看过a1了吗?它并不接近你所需要的。

{'Medium Carbon Steel': {'Cost per m^3/$': 4301.0,
  'I/mm^4': 32786900.0,
  'Max Compressive Stress/MPa': 305.0,
  'cost/$': 0.054347699999999999,
  'inner_radius/mm': 87.363900000000001,
  'inner_radius_quarted': 58254400.0,
  'thickness/mm': 12.636100000000001,
  'volume/mm^3': 12636.1}}

尝试

a1 = df['Medium Carbon Steel'].to_dict()

P = [P -1,P +1]

for i in P:
    x = (i * L * y) / (a1['I/mm^4'] * 4)
if x > a1['Max Compressive Stress/MPa']:
    print("A point load of", i, ", will break the beam")
else:
    print("A point load of", i, ", will not break the beam")