我有一个列表列表,其中外部列表的长度为100k,每个内部列表的长度为2,有两个bool条目,例如[True, False]
。我试图将每个第一个条目放在数据帧的一列中,并将每个第二个条目放入另一个列中。我的代码有效,但速度非常慢(大约需要12秒):
populate_df[["col1", "col2"]] = pd.Series(list_of_lists).apply(pd.Series)
有人可以推荐一种表现更好的方式吗?
答案 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