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]
在同一数据框中
答案 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