Python 从列表创建数据帧-TypeError:类型为';int';没有len()

Python 从列表创建数据帧-TypeError:类型为';int';没有len(),python,pandas,Python,Pandas,我试图从一个列表中创建一个数据帧,该列表的每一行都有不同的长度 列表的一个示例如下所示(我希望如此) 我使用try和append列表创建数据框的代码是: count = 0; df2 = pd.DataFrame(); for index, row in df1.iterrows(): doc = nlp(unicode(row)); text_ext = textacy.extract.subject_verb_object_triples(doc); mylist = list(

我试图从一个列表中创建一个数据帧,该列表的每一行都有不同的长度

列表的一个示例如下所示(我希望如此)

我使用try和append列表创建数据框的代码是:

count = 0;
df2 = pd.DataFrame();
for index, row in df1.iterrows():
  doc = nlp(unicode(row));
  text_ext = textacy.extract.subject_verb_object_triples(doc);
  mylist = list(text_ext) + [index]
  count+=1;
  df2 = df2.append(mylist, ignore_index=True)
但是我得到了一个错误:

TypeError: object of type 'int' has no len()
我看到有几个关于这个错误的问题,但据我所知,它们不是由同一件事引起的

我将如何创建一个包含索引上唯一的7列的数据框?(我知道其中许多列至少有3列为空,除索引外的所有列都为空)


谢谢。

我相信错误可能在代码中的for循环行中:

for index, row in df1.iterrows():
iterrows()返回一个迭代器对象,该对象至少在本例中不能用于定义for循环


我建议先通过
附加
创建元组列表,不使用
[index]
的元组,然后调用
DataFrame
构造函数,如:

count = 0
L = []
df2 = pd.DataFrame();
for index, row in df1.iterrows():
  doc = nlp(unicode(row))
  text_ext = textacy.extract.subject_verb_object_triples(doc)
  #remove join index 
  mylist = list(text_ext)
  count+=1;
  #append to list
  L.append(mylist)

df2 = pd.DataFrame(L, index=df1.index)
print (df2)
                                         0                  1
1  (dwstweets gop, broadened, base people)               None
2    (bushs campaign video, features, kat)               None
3                                     None               None
4                                     None               None
5                                     None               None
6           (president obama, wants, york)               None
7          (jeb bush, talked, enforcement)  (lets, see, plan)

您好-如果我改用
mylist=list(text\u ext)
就可以了,所以我不认为是这样。感谢您的回答-我得到了错误:
ValueError:传递值的形状是(1,2),索引暗示(13214)
-其中3214是示例数据集中的行总数(尽管将来它会大得多)。我将如何解决这个问题?否则,这看起来非常接近完美工作!没有数据很难知道问题是什么。。。一个想法,如何工作
mylist=list((text\u ext))
?我今天再次运行了它,它工作得非常好。不知道有什么区别,但非常感谢!
count = 0
L = []
df2 = pd.DataFrame();
for index, row in df1.iterrows():
  doc = nlp(unicode(row))
  text_ext = textacy.extract.subject_verb_object_triples(doc)
  #remove join index 
  mylist = list(text_ext)
  count+=1;
  #append to list
  L.append(mylist)

df2 = pd.DataFrame(L, index=df1.index)
print (df2)
                                         0                  1
1  (dwstweets gop, broadened, base people)               None
2    (bushs campaign video, features, kat)               None
3                                     None               None
4                                     None               None
5                                     None               None
6           (president obama, wants, york)               None
7          (jeb bush, talked, enforcement)  (lets, see, plan)