代码之家  ›  专栏  ›  技术社区  ›  sgerbhctim

填充数据帧的更干净的方法?

  •  1
  • sgerbhctim  · 技术社区  · 6 年前

    将数据加载到数据帧中的更清洁的方法是什么?我目前的状态是:

    df = pd.DataFrame()
    df['title'] = title_list
    df['url'] = url_list
    df['category'] = category_list
    df['traffic'] = traffic_list
    df['revenue'] = revenue_list
    df['price'] = value_list
    df.to_csv('test.csv', sep=",")
    
    2 回复  |  直到 6 年前
        1
  •  4
  •   jezrael    6 年前

    我建议使用 dictionary ,参数 columns 用于定制python中的列顺序,如下3.6所示:

    cols = ['title','url', 'category','traffic','revenue','price']
    df = pd.DataFrame({'title':title_list, 
                       'url':url_list,
                       'category':category_list,
                       'traffic':traffic_list,
                       'revenue':revenue_list,
                       'price':value_list}, columns=cols)
    
        2
  •  4
  •   piRSquared    6 年前

    安装程序

    title_list = list('ABCDE')
    url_list = list('VWXYZ')
    category_list = 'dog cat bird fish lizard'.split()
    traffic_list = 'red green yellow blue amber'.split()
    revenue_list = range(5, 10)
    value_list = range(100, 600, 100)
    

    zip

    如果所有列表的长度都相等,则此选项有效。

    data = [title_list, url_list, category_list,
            traffic_list, revenue_list, value_list]
    cols = 'title url category traffic revenue price'.split()
    pd.DataFrame(dict(zip(cols, data)))
    
      title url category traffic  revenue  price
    0     A   V      dog     red        5    100
    1     B   W      cat   green        6    200
    2     C   X     bird  yellow        7    300
    3     D   Y     fish    blue        8    400
    4     E   Z   lizard   amber        9    500
    

    如果长度不同

    data = [title_list, url_list, category_list,
            traffic_list, revenue_list, value_list]
    cols = 'title url category traffic revenue price'.split()
    pd.DataFrame(list(zip(*data)), columns=cols)
    
       title url category traffic  revenue  price
    0     A   V      dog     red        5    100
    1     B   W      cat   green        6    200
    2     C   X     bird  yellow        7    300
    3     D   Y     fish    blue        8    400
    4     E   Z   lizard   amber        9    500