Python 将列表转换为1列panda数据帧

Python 将列表转换为1列panda数据帧,python,pandas,Python,Pandas,我有一个有很多行的文件。我正在阅读每一行,将每一个单词/数字拆分并存储在一个列表中。在此之后,我尝试将此列表转换为一列panda数据帧 然而,在运行代码之后,我只得到一行列表。我需要的是1列,其中行数可变具有某些值 以下是我编写的代码片段: for line1 in file: test_set=[] test_set.append(next(file).split()) df1 = DataFrame({'test_set': [test_set]}) 我的输出类

我有一个有很多行的文件。我正在阅读每一行,将每一个单词/数字拆分并存储在一个列表中。在此之后,我尝试将此列表转换为一列panda数据帧

然而,在运行代码之后,我只得到一行列表。我需要的是1列,其中行数可变具有某些值

以下是我编写的代码片段:

for line1 in file:
    test_set=[]

    test_set.append(next(file).split())

    df1 = DataFrame({'test_set': [test_set]})
我的输出类似于:

              test_set
0  [[1, 0, 0, 0, 0, 0, 1, 1, 1, 0]]
但我想要的是

    test_set
0 1
1 0
2 0
3 0
4 0
5 0
6 1
7 1
8 1
9 0
有什么建议我做错了什么,或者我该如何实施?谢谢

输入数据样本片段

id1 id2 id3 id4
0 1 0 1 
1 1 0 0

id10 id5 id6 id7
1 1 0 1 
1 0 0 1

.
.
.
您希望这样做:

df1=DataFrame({'test\u set':test\u set})

无需将该列表再次包装到另一个列表中,这样做可以有效地说明df数据是一个包含单个元素的列表,该元素是另一个列表

编辑

查看您的输入数据,您只需加载它,然后将df构造为一列,如下所示:

In [134]:
# load the data
import io
import pandas as pd
t="""id1 id2 id3 id4
0 1 0 1 
1 1 0 0"""
df = pd.read_csv(io.StringIO(t), sep='\s+')
df

Out[134]:
   id1  id2  id3  id4
0    0    1    0    1
1    1    1    0    0
现在转置df并执行列表理解,这将使用
pd.concat
构造列表并连接它们:

In [142]:    
pd.concat([df.T[x] for x in df.T], ignore_index=True)

Out[142]:
0    0
1    1
2    0
3    1
4    1
5    1
6    0
7    0
dtype: int64

结果我不得不加上这个

df1 = DataFrame({'test_set': value for value in test_set})
但我仍然希望得到一个成本较低的答案,因为这也会增加另一个不够好的因素或“n”的复杂性

df1 = DataFrame({'test_set': test_set})
test_set已经是一个列表,您不必在它上面循环,这样您就可以将它作为值添加到pandas中

print df1

test_set
0 1
1 0
2 0
3 0
4 0
5 0
6 1
7 1
8 1
9 0

你能发布你的输入数据是什么样子的吗?很可能它可以被解析或拆分成一个df,这将很快得到你的答案,但现在它给出了相同的输出,但只有很少像这样用括号括起来-
0[1,0,0,0,0,0,1,1,0]
它仍然只有一行/如果您希望数据帧只有一行和
n
列,该怎么办?如果
test\u set
是一个列表,则只能转置结果
df=df.T
这是不正确的。请显示
test\u set
的外观这应该可以:df1=DataFrame({'test\u set':test\u set})如果希望DataFrame只有一行和
n
列,该怎么办?