我有一个列表列表,其中外部列表的长度为100k,每个内部列表的长度为2,具有两个布尔项,例如[True, False]。我尝试将第一个条目放入数据帧的一列中,并将第二个条目放入另一个列中。我有可以工作的代码,但它非常慢(大约需要12秒):
populate_df[["col1", "col2"]] = pd.Series(list_of_lists).apply(pd.Series)有人能推荐一种性能更好的方法吗?
发布于 2018-02-01 07:20:46
试着这样做:
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发布于 2018-02-01 07:27:31
如果你想在现有的数据框中添加列,这是可行的:
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 Truehttps://stackoverflow.com/questions/48553028
复制相似问题