【问题标题】:Merging onehotencoder values together in pandas在熊猫中将 onehotencoder 值合并在一起
【发布时间】:2019-07-14 18:55:32
【问题描述】:

我正在完成我的数据科学项目,并希望使用 get_dummies pandas 库合并数据

我的 df :

    0_A  0_B 0_C  1_A 1_B 1_C
0   1    0   0     0  1   0
1   0    1   0     1  0   0
2   0    1   0     0  0   1 

输出:

  A    B   C  
0   1    1   0     
1   1    1   0     
2   0    1   1  

尝试使用 if 语句但没有成功

问候 赛义夫

【问题讨论】:

    标签: python pandas dataframe data-science


    【解决方案1】:
    df = pd.DataFrame(data={"0_A":[0,1,1],
                           "0_B":[1,0,0],
                           "0_C":[0,1,1],
                           "1_A":[0,0,0],
                           "1_B":[0,1,0],
                           "1_C":[0,0,1]})
    final_df = pd.DataFrame(columns=["A","B","C"])
    
    for i in final_df:
        final_df[i] = (df[df.columns[df.columns.str.contains(i)]].max(axis=1))
    
    print(final_df)
    
    
        A   B   C
    0   1   1   0
    1   1   1   0
    2   0   1   1
    

    【讨论】:

      【解决方案2】:

      您可以在列之间使用按位或,如下所示:

      import pandas as pd
      from io import StringIO
      
      df = pd.read_csv(StringIO("""
          0_A  0_B 0_C  1_A 1_B 1_C
      0   1    0   0     0  1   0
      1   0    1   0     1  0   0
      2   0    1   0     0  0   1 """), sep=r"\s+")
      
      df["A"] = df["0_A"] | df["1_A"]
      df["B"] = df["0_B"] | df["1_B"]
      df["C"] = df["0_C"] | df["1_C"]
      
      df = df[["A", "B", "C"]]
      
      print(df)
      
      

      输出:

         A  B  C
      0  1  1  0
      1  1  1  0
      2  0  1  1
      

      【讨论】:

        猜你喜欢
        • 2020-03-19
        • 2017-05-28
        • 2019-08-01
        • 1970-01-01
        • 2021-09-03
        • 2021-05-22
        • 2017-04-17
        • 2021-03-06
        • 2018-04-16
        相关资源
        最近更新 更多