如何获取多个列表并将它们作为不同的列放在一个Python Dataframe 中?我尝试了this solution,但遇到了一些问题。
尝试1:
- 有三个列表,然后将它们压缩在一起并使用
res = zip(lst1,lst2,lst3)
- 只产生一列
尝试2:
percentile_list = pd.DataFrame({'lst1Tite' : [lst1],
'lst2Tite' : [lst2],
'lst3Tite' : [lst3] },
columns=['lst1Tite','lst1Tite', 'lst1Tite'])
- 产生一行乘以3列(如上所述),或者如果我将其转置为3行加1列
如何获得一个100行(每个独立列表的长度)乘3列(三个列表)的Pandas Dataframe ?
9条答案
按热度按时间vaj7vani1#
我想你已经差不多了,试着去掉
lst
周围的额外方括号(当你从这样的字典创建 Dataframe 时,你也不需要指定列名):如果您需要性能更高的解决方案,您可以使用
np.column_stack
而不是第一次尝试中的zip
,这在这里的示例中有大约2倍的加速,但在我看来,这是以可读性为代价的:tpxzln5u2#
在这里补充Aditya Guru的答案。不需要使用map。您可以简单地通过以下方式完成:
这会将列名设置为0,1,2。要设置您自己的列名,可以将关键字参数
columns
传递给上面的方法。wa7juj8i3#
再添加一个可扩展的解决方案。
kupeojn64#
只是补充说,使用第一种方法可以做到以下几点-
pdtvr36n5#
有几种方法可以从多个列表创建 Dataframe 。
1.
pd.DataFrame({'list1':list1, 'list2':list2, 'list3'=list3})
1.
pd.DataFrame(data=zip(list1,list2,list3),columns=['list1','list2','list3'])
tp5buhyn6#
除了上面的答案,我们还可以在飞行中创造
希望它能帮上忙!
qacovj5a7#
@oopsi使用了
pd.concat()
,但没有包括列名。您可以执行以下操作,这与公认答案中的第一个解决方案不同,它使您可以控制列顺序(避免无序的词典):de90aj5v8#
您只需使用以下代码即可
6jygbczu9#
我只是这样做的(python3.9):
这似乎相当简单(尽管是在2022年),除非我遗漏了一些明显的东西……
在python2中,可以使用
collections.OrderedDict()
。