我正在尝试在现有的熊猫数据框中创建一行,而新行的值应为计算
我有一个如下所示的数据框:
Rating LE_St % Total
1.00 7.58 74.55
2.00 0.56 5.55
3.00 0.21 2.04
5.00 0.05 0.44
6.00 1.77 17.42
All 10.17 100.00
我想添加一个称为“ Metric”的行,该行是“ Rating”> = 4和<6的“ LE_St”变量的和,除以“ All”的“ LE_St”,即Metric =(0.05 + 1.77)/ 10.17 我的输出数据框应如下所示:
Rating LE_St % Total
1.00 7.58 74.55
2.00 0.56 5.55
3.00 0.21 2.04
5.00 0.05 0.44
6.00 1.77 17.42
All 10.17 100.00
Metric 0.44
答案 0 :(得分:2)
我认为您对数据框的处理方法是错误的。 通常,行在有意义的问题上保留与列相关的值,而不保存随机信息。 pandas和python的功能是保存和处理数据。您可以轻松地从一列甚至所有列中计算出一个值,并将其存储在“摘要”中,例如数据框或单独的值中。这也可能对您有帮助。 在列(即Series对象)上进行计算时,可以使用.sum()方法(或computational tools中的任何其他方法),并通过“ rating”列中的值对数据帧进行切片。 对于小的统计数据的随机计算,您会更喜欢excel:)
一个解决方案的示例可能看起来像这样:
all = 10.17 # i dont know where this value comes from
df = df[df['rating'].between(4, 6, inclusive=True)]
metric = sliced_df['LE_ST'].sum()/all
print metric # or store it somewhere however you like