zip函数接受任意多个(包括0个和1个)序列作为参数,返回一个tuple列表。具体意思不好用文字来表述,直接看示例:
a = [100, 200, 300]
b = [400, 500, 600]
c = [700, 800, 900]
abc = zip(a, b, c)
print(xyz)
结果是:[(100, 400, 700), (200, 500, 800), (300, 600, 900)]
所以对Series组合成DataFrame用zip函数就可以,代码示例:
DataFrame(list(zip(a, b)))
结果演示:
In [3]: import pandas as pd
In [4]: a = pd.Series([1,2,3])
In [5]: b = pd.Series([2,3,4])
In [6]: c = pd.DataFrame([a,b])
In [7]: c
Out[7]:
0 1 2
0 1 2 3
1 2 3 4
不过pandas直接用列表生成dataframe只能按行生成,如果是字典可以按列生成,比如:
In [8]: c = pd.DataFrame({'a':a,'b':b})
In [9]: c
Out[9]:
a b
0 1 2
1 2 3
2 3 4
如a=Series([1,2,3])b=Series([2,3,4])怎样将ab组合成一个DataFrame?我在网上搜了好多都是通过随机数直接生成的,但是没看到这种方式的类似于R语言中的实现方法
DataFrame(list(zip(a, b)))