%timeit pd.DataFrame.from_items(zip(s.index, s.values))
1000 loops, best of 3: 669 µs per loop
%timeit s.apply(lambda x:pd.Series(x)).T
1000 loops, best of 3: 1.37 ms per loop
型 和
%timeit pd.DataFrame.from_items(zip(s.index, s.values)).T
1000 loops, best of 3: 919 µs per loop
%timeit s.apply(lambda x:pd.Series(x))
1000 loops, best of 3: 1.26 ms per loop
型 此外,@Hatshepsut的回答相当快(也适用于不同长度的列表):
%timeit pd.DataFrame(item for item in s)
1000 loops, best of 3: 636 µs per loop
型 和
%timeit pd.DataFrame(item for item in s).T
1000 loops, best of 3: 884 µs per loop
9条答案
按热度按时间7qhs6swi1#
正如@Hatshepsut在评论中指出的那样,
from_items
是deprecated as of version 0.23。链接建议使用from_dict
代替,因此旧的答案可以修改为:字符串
你可以像这样使用
from_items
(假设你的列表长度相同):型
或
型
取决于您想要的输出。
这可能比使用
apply
快得多(正如@Wen的答案中所使用的那样,然而,它也适用于不同长度的列表):型
和
型
此外,@Hatshepsut的回答相当快(也适用于不同长度的列表):
型
和
型
最快的解决方案似乎是@Abdou的答案(针对Python 2进行了测试;也适用于不同长度的列表;在Python 3.6+中使用
itertools.zip_longest
):型
另一个选项:
型
huus2vyu2#
如果该系列的长度超高(超过1米),可以用途:
字符串
vlf7wbxs3#
尝试:
字符串
sgtfey8w4#
像这样迭代序列:
字符串
6tr1vspr5#
pd.DataFrame.from_records
也可以使用itertools.zip_longest
:字符串
qgzx9mmu6#
您可能正在寻找
字符串
或
型
ds97pgxw7#
注意接受答案中的
from_items()
方法在最新版Pandas中已弃用,应该使用from_dict()
方法。具体操作如下:字符串
还请注意,使用
from_dict()
为我们提供了迄今为止最快的方法:型
f1tvaqid8#
一个更好的方法是利用pandas在使用
Series.values
时输出一个numpy数组的事实。然后你可以使用np.vstack
将这个奇怪的集合重新整形为一个记录堆栈,它会自动将所有数据解压缩到一个整洁的n_row x n_numpy形状的numpy数组中。字符串
bz4sfanl9#
您真正需要的是 transpose 属性。
字符串
这是上面代码生成的输出。“
型