在使用pandas的dataframe进行处理时,特别要注意的地方
比如有三个列矩阵,我们想把a,b,c分别作为一个Series组成一个dataframe时
a = [1, 1, 1, 1]
b = [2, 2, 2, 2]
c = [3, 3, 3, 3]
如果打印一下会发现
print([a, b, c])
结果:
[[1, 1, 1, 1], [2, 2, 2, 2], [3, 3, 3, 3]]
如果这样使用会报错
# print(pd.DataFrame([a, b, c], columns={"a", "b", "c"}))
原因是这样是行叠加在一起,会导致列数和columns的列数不一致
正确的两种做法:
1、使用numpy里的array进行转置
print(np.array([a, b, c]).T)
2、指定每一行的表名
print(pd.DataFrame({"a": a, "b": b, "c": c}))
结果第一种:
[[1 2 3]
[1 2 3]
[1 2 3]
[1 2 3]]
第二种:
a b c
0 1 2 3
1 1 2 3
2 1 2 3
3 1 2 3