Python Pandas如何基于其他行的值为DataFrame新增索引行
实现代码
首先导入依赖并构造示例DataFrame(已有现成数据可跳过构造部分):
import pandas as pd # 构造初始DataFrame,你有现成的df可以直接跳过这一步 data = { "ALL": [100, 250, 120], "COL1": [50, 32, 18], "COL2": [214, 89, 12] } df = pd.DataFrame(data, index=["ABC", "DEF", "GHI"]) df.index.name = "IDX" # 确认索引列名为IDX
接下来按要求计算并新增行:
# 按公式批量计算所有列的新行值 new_row = (df.loc["DEF"] - df.loc["GHI"]) / df.loc["DEF"] # 保留两位小数和示例结果一致,不需要精度控制可以去掉round方法 new_row = new_row.round(2) # 将新行追加到原DataFrame,设置索引名为new1 df.loc["new1"] = new_row
执行完成后打印df即可得到预期结果:
ALL COL1 COL2 IDX ABC 100.00 50.00 214.00 DEF 250.00 32.00 89.00 GHI 120.00 18.00 12.00 new1 0.52 0.44 0.87
注意事项
如果出现索引找不到的报错,可先执行print(df.index)确认索引值是否为['ABC','DEF','GHI']的准确字符串格式即可。
内容的提问来源于stack exchange,提问作者dingaro
相关产品推荐
相关产品推荐

