【问题标题】:How to remove column one by one from a dataframe through a loop in python?如何通过python中的循环从数据框中一一删除列?
【发布时间】:2020-11-11 06:25:19
【问题描述】:

我有一个包含 200 列的数据框,我想开始通过循环从倒序中删除列,例如最后一列,直到 5 或 10 列保留在数据框中并存储在 newdataframe 中,例如两个特征(列、结果)

column    results 
-----------------
200         94%
199         93%
.
.
150         98%

通过一一删除一列,我想找出机器学习模型在删除每一列时的准确性。

如何用 Python 编写这段代码?

【问题讨论】:

    标签: python pandas machine-learning


    【解决方案1】:

    为此使用iloc 属性

    这是一个包含 3 列的示例

    import pandas as pd
    
    df = pd.DataFrame({
      'col1': range(3),
      'col2': range(3),
      'col3': range(3)
    })
    for i in range(len(df.columns) - 1, 0, -1):
      print(df.iloc[:, :i])
      print()
    

    输出

       col1  col2
    0     0     0
    1     1     1
    2     2     2
    
       col1
    0     0
    1     1
    2     2
    

    【讨论】:

    • 我如何通过一个循环来做到这一点,最后我只需将结果存储在一个数据帧中而不是倍数,因为我有 200 个列,当我从相反的顺序开始时,我将停止10 或 20 值
    • @MuhammadAliKhan 使用循环更新的帖子是否回答了您的问题?
    • 是的,它的工作原理很好,但我可以停止一些特定的标准,比如在将列扩孔到 5-10 之后停止
    • @MuhammadAliKhan 这只是一个循环。你可以随时停下来。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-10-10
    • 2017-10-28
    • 1970-01-01
    • 1970-01-01
    • 2021-11-12
    • 2019-12-24
    • 2021-12-09
    相关资源
    最近更新 更多