【问题标题】:Create new df with for loop in Pandas在 Pandas 中使用 for 循环创建新的 df
【发布时间】:2020-09-10 10:13:38
【问题描述】:

不确定我这样做是否正确 - 第一次在这里发帖,所以请温柔:)

Se 下图。

Print screen from my Jupyter Notebook

我要做的是从 df_Grundinladdning['Datan'] 数据帧创建一个新的数据帧,包含包含字符串“#TRANS”的行。

【问题讨论】:

    标签: python pandas for-loop substring


    【解决方案1】:

    正确的方法描述here.循环,即使没有语法错误,也会非常非常慢。

    【讨论】:

      【解决方案2】:

      这是一种方法:

      df = pd.DataFrame({"Datan": ["x", "TRANS y", "z", "TRANS u", "v", "TRANS w"]})
      print(df)
      
      new_df = df[df.Datan.str.contains("TRANS")]
      print(new_df)
      

      结果:

      (original dataframe)
           Datan
      0        x
      1  TRANS y
      2        z
      3  TRANS u
      4        v
      5  TRANS w
      
      (new dataframe)
           Datan
      1  TRANS y
      3  TRANS u
      5  TRANS w
      

      【讨论】:

        【解决方案3】:

        您不需要遍历数据框,您可以通过以下方式轻松获取结果数据框:

        df_transOnly= df_Grundinladdning[df_Grundinladdning["Datan"].str.contains('#TRANS')]
        df_transOnly #for printing df
        

        所以你会像这样得到所需的数据框:

              Datan
        5     #TRANS232
        12    #TRANS455
        20    #TRANS3144
        104   #TRANS1234
        500   #TRANS213
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2021-06-25
          • 1970-01-01
          • 2020-02-08
          • 2022-01-02
          • 2020-10-20
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多