【问题标题】:Limit columns from list of tuples while dataframe creation在创建数据框时限制元组列表中的列
【发布时间】:2020-09-08 04:05:36
【问题描述】:

从元组列表创建 df 时如何限制列?

预期输入:

data = [('a',11,111),
        ('b',22,222),
        ('c',33,333)]

预期输出:

   A   B
0  a  11
1  b  22
2  c  33

我写道:

pd.DataFrame([(x[0], x[1]) for x in data], columns=['A', 'B'])

但是有没有更优雅的方法来做到这一点?

【问题讨论】:

  • 创建df然后切片,pd.DataFrame(data).iloc[:,:2]
  • 我认为您当前的解决方案一点也不优雅,也许可以改用切片,pd.DataFrame([i[:2] for i in data],columns=['A','B'])
  • @Datanovice 谢谢。

标签: python pandas list dataframe


【解决方案1】:

我认为我们可以做到from_records

pd.DataFrame.from_records(data,exclude=[2], columns=['A','B',2])
Out[27]: 
   A   B
0  a  11
1  b  22
2  c  33

【讨论】:

    【解决方案2】:
    from operator import itemgetter
    pd.DataFrame(map(itemgetter(0,1),data))
    
        0   1
    0   a   11
    1   b   22
    2   c   33
    

    【讨论】:

      【解决方案3】:

      你可以这样做:

      In [1461]: df = pd.DataFrame(data, columns=['A', 'B', 'C'])[['A','B']]
      In [1463]: df
      Out[1463]: 
         A   B
      0  a  11
      1  b  22
      2  c  33
      

      【讨论】:

        猜你喜欢
        • 2020-04-13
        • 1970-01-01
        • 1970-01-01
        • 2019-05-19
        • 2020-07-31
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多