Python 熊猫-分解列包含字符串和列表
我有一个dataframe,它有一个列,在某些行中包含字符串,在某些行中包含列表。如何将列表分解为单独的列。 这就是我们所拥有的-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
>>> 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是的,很好,我错过了一个步骤(我认为这是我的复制粘贴错误!)