性能将列表列表解压缩到pandas数据帧中

时间:2018-01-31 23:18:05

标签: python python-3.x pandas indexing

我有一个列表列表,其中外部列表​​的长度为100k,每个内部列表的长度为2,有两个bool条目,例如[True, False]。我试图将每个第一个条目放在数据帧的一列中,并将每个第二个条目放入另一个列中。我的代码有效,但速度非常慢(大约需要12秒):

populate_df[["col1", "col2"]] = pd.Series(list_of_lists).apply(pd.Series)

有人可以推荐一种表现更好的方式吗?

2 个答案:

答案 0 :(得分:2)

请改为尝试:

In [29]: lst = [[False,False],[True, False],[False, True]]

In [30]: df = pd.DataFrame(lst, columns=['col1','col2'])

In [31]: df
Out[31]:
    col1   col2
0  False  False
1   True  False
2  False   True

答案 1 :(得分:2)

如果要将列添加到现有数据框,则可以使用: -

import pandas as pd

df = pd.DataFrame()
lst = [[True, False], [False, False], [True, True], [False, True]]

df = pd.concat([df, pd.DataFrame(columns=['A', 'B'])], axis=1)
df.A, df.B = list(zip(*lst))

#        A      B
# 0   True  False
# 1  False  False
# 2   True   True
# 3  False   True