【问题标题】:How to concat item that is in list format in columns in dataframe如何在数据框中的列中连接列表格式的项目
【发布时间】:2019-05-03 10:49:33
【问题描述】:

我想在数据框中连接列表格式的项目

我在下面有一个数据框,当我打印 DataFrame.head() 时,它显示在下面

A    B
1    [1,2,3,4]    
2    [5,6,7,8]

期望结果(将其从列表转换为以逗号分隔的字符串)

A    B
1    1,2,3,4
2    5,6,7,8

【问题讨论】:

    标签: python arrays python-3.x dataframe


    【解决方案1】:

    你可以这样做:

    import pandas as pd
    
    data = [[1,    [1,2,3,4]],
    [2,    [5,6,7,8]]]
    
    df = pd.DataFrame(data=data, columns=['A', 'B'])
    
    df['B'] = [','.join(map(str, lst)) for lst in df.B]
    
    print(df.head(2))
    

    输出

       A        B
    0  1  1,2,3,4
    1  2  5,6,7,8
    

    【讨论】:

      【解决方案2】:

      您可以为此使用mapapply 方法:

      import pandas as pd
      
      data = [[1,    [1,2,3,4]],
      [2,    [5,6,7,8]]]
      
      df = pd.DataFrame(data=data, columns=['A', 'B'])
      
      df['B'] = df['B'].map(lambda x: ",".join(map(str,x)))
      # or 
      # df['B'] = df['B'].apply(lambda x: ",".join(map(str,x)))
      
      print(df.head(2))
      

      【讨论】:

        【解决方案3】:
        df = pd.DataFrame([['1',[1,2,3,4]],['2',[5,6,7,8]]], columns=list('AB'))
        

        将列表转换为字符串的通用方法。在您的示例中,您的列表是 int 类型,但它可以是任何可以表示为字符串的类型,以使用 ','.join(map(str, a_list)) 加入列表中的元素然后只需遍历包含您的列表的特定列中的行想加入

        for i, row in df.iterrows():
            df.loc[i,'B'] = ','.join(map(str, row['B']))
        

        【讨论】:

          猜你喜欢
          • 2019-05-20
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2020-05-29
          • 1970-01-01
          • 2019-01-05
          • 2018-12-10
          相关资源
          最近更新 更多