【问题标题】:How to append items of a list to specific columns in a dataframe?如何将列表项附加到数据框中的特定列?
【发布时间】:2019-12-30 17:33:51
【问题描述】:

假设我有一个包含 n 个项目的字符串列表,比如说:

    list1 = ['a','b',..'y','z']

我不想将整个列表附加到数据框(创建 n 列),我只想将第一项附加到第一列,将最后一项附加到最后一列,并将其间的所有内容合并到中间列。

我试过了

    df = pd.DataFrame(list1)

但这会为每个字符串项创建一个单独的列,从而产生 n 列

我希望输出是 3 列的数据框,例如:

         0       1        2
  0      a     b+c+d+..   z

请帮助一个菜鸟!

【问题讨论】:

    标签: python python-3.x pandas list dataframe


    【解决方案1】:

    您可以分别解压缩列表的第一个值、中间值和结尾,并从这些值构造数据框:

    a, *b, c = list1
    pd.DataFrame([a, b, c]).T
    
       0             1  2
    0  a  [b, c ... y]  z
    

    如果您希望将 midde 中的项目连接成一个字符串,您可以这样做:

    pd.DataFrame([a, ''.join(b), c]).T
    
       0     1     2
    0  a  bcd...y  z
    

    在这些情况下解包的一种简洁方法是使用Extended Iterable Unpacking,在这种情况下,它允许您“捕获”可迭代中的所有元素,具体取决于哪些其他元素也被单独分配。在这种情况下,b 将包含 ac 之间的所有元素。

    【讨论】:

      【解决方案2】:

      好吧,你可以手动做:

      a, *b, c = list1
      
      df = pd.DataFrame([a, b, c]).T
      
         0                                                  1  2
      0  a  [b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, ...  z
      

      【讨论】:

      • @yatu 应该有一种——最好只有一种——明显的方法。+1 来自我 :)
      猜你喜欢
      • 2022-01-17
      • 2021-11-08
      • 2021-02-06
      • 2021-10-13
      • 2019-05-24
      • 1970-01-01
      • 2019-09-08
      • 2021-07-11
      • 1970-01-01
      相关资源
      最近更新 更多