Python 熊猫-分解列包含字符串和列表

Python 熊猫-分解列包含字符串和列表,python,pandas,dataframe,Python,Pandas,Dataframe,我有一个dataframe,它有一个列,在某些行中包含字符串,在某些行中包含列表。如何将列表分解为单独的列。 这就是我们所拥有的- >>> df2 = pd.DataFrame(["abc","[u'abc', u'xyz']"]) >>> df2 0 0 abc 1 [u'abc', u'xyz'] 我想谈谈这个- 0 1 0 abc None 1 abc xy

我有一个dataframe,它有一个列,在某些行中包含字符串,在某些行中包含列表。如何将列表分解为单独的列。 这就是我们所拥有的-

>>> df2 = pd.DataFrame(["abc","[u'abc', u'xyz']"])
>>> df2

                  0
0               abc
1  [u'abc', u'xyz']
我想谈谈这个-

     0     1
0  abc  None
1  abc   xyz
我试过这样的东西,但有问题-

>>> for col, col_data in df2.iteritems():
...   col_data = pd.get_dummies(pd.DataFrame(list(col_data)), prefix = col)
... 
Traceback (most recent call last):
  File "<stdin>", line 2, in <module>
  File "/remote/iims003/harpreet/anaconda2/lib/python2.7/site-packages/pandas/core/reshape.py", line 1095, in get_dummies
    for (col, pre, sep) in zip(columns_to_encode, prefix, prefix_sep):
TypeError: izip argument #2 must support iteration
>>对于df2.iteritems()中的col、col\u数据:
...   col\u data=pd.get\u假人(pd.DataFrame(list(col\u data)),前缀=col)
... 
回溯(最近一次呼叫最后一次):
文件“”,第2行,在
文件“/remote/iims003/harpreet/anaconda2/lib/python2.7/site packages/pandas/core/reformate.py”,第1095行,在get_dummies中
对于zip中的(col、pre、sep)(列编码、前缀、前缀sep):
TypeError:izip参数#2必须支持迭代

您可以使用返回序列的应用程序:

In [11]: from ast import literal_eval

In [12]: def to_series(s):
    ...:     try:
    ...:         return pd.Series(literal_eval(s))  # makes it an actual list
    ...:     except ValueError:
    ...:         return pd.Series([s])
    ...:

In [13]: df2[0].apply(to_series)
Out[13]:
     0    1
0  abc  NaN
1  abc  xyz

我已经复制了你的代码,并在他原始的df2`df2=pd.DataFrame([“abc”,“[u'abc',u'xyz']]”)上使用它,但我没有得到你的输出。我刚把原来的df2拿回来作为答案。@moondra是的,很好,我错过了一个步骤(我认为这是我的复制粘贴错误!)