首页 > 解决方案 > 将列表值转换为数据框

问题描述

我从分析中得到了这个输出

[2008 'Rajasthan Royals']
[2009 'Deccan Chargers']
[2010 'Chennai Super Kings']
[2011 'Chennai Super Kings']
[2012 'Kolkata Knight Riders']
[2013 'Mumbai Indians']
[2014 'Kolkata Knight Riders']
[2015 'Mumbai Indians']

我试图将两个值(ie yearteam name)放入 Pandas 数据框中,分成两个单独的列。

也就是说,例如从上述输出中 -2008在一个列和'Rajasthan Royal'另一列中,对于其他列也是如此。

标签: pythonpython-3.xpandaslistdataframe

解决方案


一个想法可能是将您的数据放入numpy矩阵中,然后转置它,以便第一行是'Year'行,第二行是'TeamName'行:

import pandas as pd
import numpy as np

data = np.array([[2008, 'Rajasthan Royals'],
                 [2009, 'Deccan Chargers'],
                 [2010, 'Chennai Super Kings'],
                 [2011, 'Chennai Super Kings'],
                 [2012, 'Kolkata Knight Riders'],
                 [2013, 'Mumbai Indians'],
                 [2014, 'Kolkata Knight Riders'],
                 [2015, 'Mumbai Indians']])

df = pd.DataFrame({'Year': data.T[0].astype(int),
                   'TeamName': data.T[1]})

输出:

   Year               TeamName
0  2008       Rajasthan Royals
1  2009        Deccan Chargers
2  2010    Chennai Super Kings
3  2011    Chennai Super Kings
4  2012  Kolkata Knight Riders
5  2013         Mumbai Indians
6  2014  Kolkata Knight Riders
7  2015         Mumbai Indians

推荐阅读