繁体   English   中英

如何选择列表元素列表并在单个数据框中创建不同的列?

[英]How to select list of list elememts and make different columns in a single dataframe?

List1 = [[1,A,!,a],[2,B,@,b],[7,C,&,c],[1,B,@,c],[4,D,#,p]]

输出应如下所示:

每个不同的列应包含每个子列表元素的1个值,例如

column1:[1,2,7,1,4] 
column2:[A,B,C,B,D]
column3:[!,@,&,@,#]
column4:[a,b,c,c,p] 

在同一数据框中

假设您实际上打算将List1设为this(所有元素都是字符串):

list1 = [["1","A","!","a"],["2","B","@","b"],["7","C","&","c"],["1","B","@","c"],["4","D","#","p"]]

我认为除了将List1传递给DataFrame构造函数外,您不需要执行任何其他操作。 有几种方法可以将信息传递给DataFrame。 使用列表列表可构造未命名的列。

print(pd.DataFrame(list1))

   0  1  2  3
0  1  A  !  a
1  2  B  @  b
2  7  C  &  c
3  1  B  @  c
4  4  D  #  p

给定以下列表文件:

l = [['1', 'A', '!', 'a'], ['2', 'B', '@', 'b'], ['7', 'C', '&', 'c'], ['1', 'B', '@', 'c'], ['4', 'D', '#', 'p']]

您可以使用pandas.Dataframe进行如下转换:

import pandas as pd

pd.DataFrame(l, columns=['c1', 'c2', 'c3', 'c4'])
# columns parameter for passing customized column names

结果:

  c1 c2 c3 c4
0  1  A  !  a
1  2  B  @  b
2  7  C  &  c
3  1  B  @  c
4  4  D  #  p

正如评论(并由John L.的回答所说明), pandas.DataFrame应该足够了。 如果您真正想要的是转置的数据帧,请尝试手动转置:

import pandas as pd

df = pd.DataFrame(List1).T

或预先使用zip

df = pd.DataFrame(list(zip(*List1)))

两者都返回:

   0  1  2  3  4
0  1  2  7  1  4
1  A  B  C  B  D
2  !  @  &  @  #
3  a  b  c  c  p

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM