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

时间:2019-08-16 07:02:33

标签: python pandas

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] 

在同一数据框中

3 个答案:

答案 0 :(得分:1)

假设您实际上要让List1成为这个(所有元素都是字符串):

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

答案 1 :(得分:1)

给出以下列表文件:

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

答案 2 :(得分:0)

如所评论(并由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